Docker Daemon 连接问题解决文档
问题描述
在使用 Docker 命令时,遇到以下错误:
~$ docker images
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
问题分析
经过查询,问题可能与 iptables
设置有关。
解决步骤
-
切换
iptables
设置:
使用以下命令查看当前的iptables
选项:sudo update-alternatives --config iptables
输出可能如下:
有 2 个候选项可用于替换 iptables (提供 /usr/sbin/iptables)。 选择 路径 优先级 状态 ------------------------------------------------------------ * 0 /usr/sbin/iptables-nft 20 自动模式 1 /usr/sbin/iptables-legacy 10 手动模式 2 /usr/sbin/iptables-nft 20 手动模式 要维持当前值[*]请按<回车键>,或者键入选择的编号:
输入选项
1
(选择iptables-legacy
),然后按 Enter 键。应该看到类似于以下的输出,确认切换已成功:
update-alternatives: 使用 /usr/sbin/iptables-legacy 替换 /usr/sbin/iptables。
-
重新启动 Docker 服务:
sudo systemctl restart docker
-
检查 Docker 服务状态:
sudo systemctl status docker
-
验证 Docker 功能:
运行以下命令确认问题已解决:~$ docker images
如果一切正常,应该看到镜像列表:
REPOSITORY TAG IMAGE ID CREATED SIZE
结论
通过将 iptables
切换为 iptables-legacy
,成功解决了 Docker 无法连接到守护进程的问题。