Docker安装后无法连接守护进程:执行docker run hello-world报错求助
我之前也碰到过一模一样的坑,给你几个亲测有效的排查和解决步骤:
先确认Docker服务的真实启动状态
你执行sudo service docker restart后显示的“Starting Docker: docker”只是启动命令的反馈,不代表服务真的跑起来了。可以用journalctl -u docker.service查看Docker的详细启动日志,里面会明确标出失败原因——比如配置文件语法错误、端口被占用、存储驱动不兼容之类的问题。验证Docker Socket的权限问题
报错里提到的unix:///var/run/docker.sock是Docker客户端和daemon通信的套接字,普通用户默认可能没有访问权限。先试试用sudo docker run hello-world测试,如果能成功,那就是权限问题:- 创建docker用户组:
sudo groupadd docker - 将当前用户加入组:
sudo usermod -aG docker $USER - 退出当前会话重新登录(或者用
newgrp docker临时生效),之后再运行docker run hello-world试试
- 创建docker用户组:
检查Docker配置文件是否出错
如果日志提示配置错误,去检查/etc/docker/daemon.json(如果存在的话),有没有语法错误比如漏写逗号、括号不匹配。不确定的话,可以先把这个文件重命名备份:sudo mv /etc/docker/daemon.json /etc/docker/daemon.json.bak,然后重启Docker服务,看能不能正常启动。手动启动Daemon调试
直接在控制台手动启动Docker daemon:sudo dockerd,这时候会打印实时运行日志,能直接看到具体的报错点——比如“error starting daemon: error initializing graphdriver: overlay2: invalid argument”这类明确提示,跟着修复就行。检查内核和依赖支持
Docker需要内核支持cgroup、overlay2等特性,用uname -r查看内核版本,至少要3.10以上(现在大部分系统都满足)。另外确保安装了必要的依赖包,比如Debian/Ubuntu系可以执行:sudo apt install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
内容的提问来源于stack exchange,提问作者user48115

