Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 解决

大概是docker容器设置restart-allways,然后重启Linux虚拟机后,发现很多进程。

但是这时候docker ps 就会报错

解决方法就是,需要reload 一下 daemon,然后restart docker,执行下面的两个命令

systemctl daemon-reload

systemctl restart docker.service

然后docker ps 发现可以了

如果上述办法不行,可以运行 ps -elf |grep docker

如果存在进程

就运行 ps -elf |grep docker | awk '{print $4}'|xargs kill -9

然后再执行

systemctl daemon-reload

systemctl start docker.service

应该就可以了。

### 解决方案 当遇到 `Cannot connect to the Docker daemon at unix:///var/run/docker.sock` 错误时,这通常意味着 Docker 守护进程未运行或者当前用户无权访问该守护进程[^3]。 #### 检查Docker服务状态 确认Docker服务是否正在运行非常重要。可以使用如下命令来查看Docker服务的状态: ```bash sudo systemctl status docker ``` 如果服务没有启动,则可以通过下面的命令尝试启动它: ```bash sudo systemctl start docker ``` #### 用户权限配置 有时即使Docker服务已经正常工作,由于权限不足也会导致无法连接到守护程序的情况发生。此时应该考虑将自己加入docker组以便获得足够的操作权限: ```bash sudo usermod -aG docker $USER ``` 为了使更改生效,可能需要重新登录或重启计算机。 #### 验证Socket文件存在性和属性设置 确保 `/var/run/docker.sock` 文件确实存在于系统当中,并且其拥有者以及所属群组均为root:docker;同时具备适当读写执行权限位组合(一般情况下应为srw-rw----)。可通过ls -l指令来进行验证: ```bash ls -l /var/run/docker.sock ``` 对于某些特定环境下的安装方式来说,还可能存在路径差异等问题,因此建议参照官方文档进一步排查具体原因并调整相应参数配置[^4]。 #### 修改Service Configuration (可选) 在少数情形下,修改Docker的服务配置也可能有助于解决问题。创建或编辑位于 `/etc/systemd/system/docker.service.d/override.conf` 的覆盖文件,添加必要的选项后保存退出再重载systemctl缓存即可应用新的设定值[^5]: ```ini [Service] ExecStart= ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock ``` 最后记得再次重启Docker服务以确保所有改动都被正确加载进来。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小东很不戳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值