当 Docker 连接出现问题时,可以按照以下步骤进行排查和解决:
确保 Docker 服务正在运行:
# Linux/macOS
sudo systemctl status docker # systemd 系统
sudo service docker status # init.d 系统
# Windows (PowerShell)
Get-Service docker
如果未运行,启动服务:
sudo systemctl start docker # 或 sudo service docker start
错误示例:Got permission denied while trying to connect to the Docker daemon
解决方法:
- 将当前用户加入 docker
用户组:
bash
sudo usermod -aG docker $USER
newgrp docker # 刷新组权限
- 重启 Docker 服务:
bash
sudo systemctl restart docker
错误示例:Cannot connect to the Docker daemon
解决方法:
- 确认 Docker 守护进程是否监听正确地址:
bash
echo $DOCKER_HOST # 如果为空,默认使用本地 socket
- 如果配置了远程连接(如 TCP),检查 /etc/docker/daemon.json
:
json
{
"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]
}
注意: 修改后需重启 Docker 服务。
2375/2376
):
bash
sudo ufw status # Ubuntu
sudo iptables -L # 检查规则
docker.exe
通信。sudo systemctl restart docker # Linux
# 或通过 Docker Desktop 重启(Windows/macOS)
获取更详细的错误信息:
sudo journalctl -u docker.service -n 100 # Linux (systemd)
cat /var/log/docker.log # 部分系统
如果问题持续,尝试重置 Docker:
- Linux:
bash
sudo systemctl stop docker
sudo rm -rf /var/lib/docker # 警告:删除所有容器和镜像!
sudo systemctl start docker
- Windows/macOS: 通过 Docker Desktop 的 Reset to factory defaults 选项。
Error response from daemon: dial unix /var/run/docker.sock: connect: no such file or directory
→ Docker 服务未运行或 socket 路径错误。
Cannot connect to the Docker daemon at tcp://x.x.x.x:2375
→ 检查远程 Docker 配置和网络连通性。
TLS handshake timeout
→ 可能是网络问题或 Docker Hub 访问受限,尝试配置镜像加速器。
docker --version
。df -h
(Docker 需要足够空间存储镜像和容器)。通过以上步骤,大部分 Docker 连接问题可以解决。如果问题仍存在,请提供具体的错误信息以便进一步分析!