Cannot connect to the Docker daemon at unix:///var/run/docker.sock. 问题解决

问题描述

原来我的服务器docker服务运行正常,但在某次尝试用时, 根据系统的错误提示执行了snap install docker指令之后,
再执行docker ps命令则提示Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 无法访问docker服务了, 查看状态是正常, 并且重启也没报错, 就是无法通过docker命令操作docker了

网上很多相同的报错, 都是一开始下载的时候才出现问题,
而不是像我这种正常使用后, 因为用了另一种方式安装docker导致原来的服务无法被访问到

因此解决的方式会和别的不太一样

问题分析

执行 snap install docker 后,你实际上通过 Snap 安装了 Docker 的另一个实例,
这个实例可能与系统中原有的 Docker 实例(可能是通过包管理器如 apt, yum, dnf 等安装的)发生冲突。
这通常会导致 /var/run/docker.sock 文件被新的 Docker 实例使用,或者原有的 Docker 服务被停止。

解决步骤

要解决这个问题,需要有以下几个步骤:

1. 停止并卸载通过 Snap 安装的 Docker

首先,尝试停止并卸载通过 Snap 安装的 Docker:

sudo snap stop docker
sudo snap remove docker

2. 确认原有的 Docker 是否正在运行

卸载 Snap 版本的 Docker 后,检查原有的 Docker 是否正在运行:

sudo systemctl status docker  # 对于使用 systemd 的系统
# 或者
sudo service docker status    # 对于较旧的系统

如果 Docker 没有运行,尝试启动它:

sudo systemctl start docker  # 对于使用 systemd 的系统
# 或者
sudo service docker start    # 对于较旧的系统

3. 检查 /var/run/docker.sock

确认 /var/run/docker.sock 文件存在并且 Docker 用户(通常是 docker 用户组)有权访问它。
你可以使用 ls -l /var/run/docker.sock 来查看文件权限。

4. 将你的用户添加到 docker 组(如果尚未添加)

如果你之前没有将你的用户添加到 docker 组,你需要这样做以确保你的用户可以无需 sudo 就能运行 Docker 命令:

# 直接执行,无需修改
sudo usermod -aG docker $USER

5. 重启你的机器

有时候,重启你的机器可以解决由于服务冲突或状态不一致引起的问题。reboot

6. 检查 Docker 守护进程的日志

如果 Docker 仍然无法启动,查看 Docker 守护进程的日志可能会提供有用的信息:

journalctl -u docker.service  # 对于使用 systemd 的系统
# 或者查看 /var/log/docker.log 或使用 dmesg(如果相关日志被记录在那里)

7. docker ps查看是否恢复成功

在这里插入图片描述


至此我的问题解决完成, 如果执行到此步骤你还没有成功, 建议查看下面推荐的其他文章, 或者卸载重装

"Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?" 这个错误通常出现在尝试与Docker守护进程建立连接时失败。这可能是因为Docker守护进程未运行或出现其他问题。 为了解决这个问题,你可以尝试以下几个步骤: 1. 确保Docker守护进程正在运行。你可以通过运行命令"sudo service docker status"来检查Docker守护进程的状态。如果它未运行,你可以使用"sudo service docker start"启动它。 2. 检查Docker守护进程的日志以获取更多信息。你可以使用命令"sudo tail -f /var/log/upstart/docker.log"来查看日志。日志可能会给出关于为什么无法连接到守护进程的更多详细信息。 3. 确保你的用户具有适当的权限来访问Docker守护进程。默认情况下,只有root用户和docker组的成员才能访问守护进程。你可以将当前用户添加到docker组中,以便能够与守护进程进行交互。你可以使用命令"sudo usermod -aG docker your_username"将当前用户添加到docker组中(将"your_username"替换为你的用户名)。 4. 确认/var/run/docker.sock文件存在并具有正确的权限。你可以使用命令"ls -l /var/run/docker.sock"来检查文件的权限和所有者。如果文件不存在或具有不正确的权限,你可以尝试通过运行"sudo chmod 666 /var/run/docker.sock"来更改权限。 总结起来,当出现"Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?"错误时,你应该检查Docker守护进程的运行状态,查看日志获取更多信息,确保用户具有访问权限,并确认文件权限和所有者设置正确。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?](https://blog.csdn.net/qq_42114918/article/details/81840335)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [ubuntu vps安装docker报错:Cannot connect to the Docker daemon at unix:///var/run/docker.sock....](https://download.csdn.net/download/weixin_38733787/14094320)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

时间静止不是简史

感谢你的肯定, 我将继续努力

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

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

打赏作者

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

抵扣说明:

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

余额充值