Docker daemon无法连接但docker run hello-world可正常运行的问题
无法连接到Docker daemon的排查与解决
以下是几种常见原因及对应解决方法:
当前用户无Docker操作权限
即使Docker服务运行,普通用户可能没有访问Docker socket的权限。执行以下命令将用户加入docker组:sudo usermod -aG docker $USER执行后重新登录系统,或者用
newgrp docker命令临时刷新权限,再尝试操作。Docker Socket权限异常
检查/var/run/docker.sock的权限配置:ls -l /var/run/docker.sock如果输出中所属组不是
docker,执行以下命令修复:sudo chown root:docker /var/run/docker.sockDOCKER_HOST环境变量配置错误
检查是否设置了错误的Docker主机地址:echo $DOCKER_HOST如果输出非空且不是本地daemon的地址,执行
unset DOCKER_HOST清空该环境变量,再重试。Docker daemon服务异常重启
虽然docker run hello-world之前成功,但可能后续daemon意外停止。检查服务状态:sudo systemctl status docker如果服务未运行,启动服务:
sudo systemctl start docker可同时设置开机自启避免后续问题:
sudo systemctl enable docker防火墙/SELinux干扰
- 临时关闭SELinux测试:
若问题解决,可修改sudo setenforce 0/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=permissive永久生效。 - 检查防火墙规则,以UFW为例,允许Docker相关通信:
sudo ufw allow docker
- 临时关闭SELinux测试:
内容的提问来源于stack exchange,提问作者Weimin Chan
相关产品推荐
相关产品推荐

