当 Docker 服务已启动但无法连接时,可以按照以下步骤排查和解决问题:
# 对于 Linux/Unix 系统
sudo systemctl status docker
# 对于 macOS (Docker Desktop)
open -a Docker
确保 Docker 服务显示为 "active (running)" 状态。
# 检查 Docker 是否在监听 Unix socket
ls -l /var/run/docker.sock
# 检查 Docker 是否在监听 TCP 端口 (默认是 2375/2376)
netstat -tulnp | grep dockerd
症状: 执行 docker ps
时出现 "Got permission denied" 错误
解决方案:
sudo usermod -aG docker $USER
newgrp docker # 或者重新登录
解决方案:
# 重启 Docker 服务
sudo systemctl restart docker
# 或者对于 Docker Desktop
# 通过 GUI 重启 Docker
解决方案:
# 检查端口冲突
sudo netstat -tulnp | grep <端口号>
# 修改 Docker 配置使用不同端口
解决方案:
# 检查防火墙规则
sudo ufw status # Ubuntu
sudo firewall-cmd --list-all # CentOS
# 添加允许规则
sudo ufw allow 2375/tcp
# 查看 Docker 服务日志
journalctl -u docker.service -n 50 --no-pager
# 对于 Docker Desktop
# 查看应用程序日志
# 停止 Docker
sudo systemctl stop docker
# 清理 Docker 环境
sudo rm -rf /var/lib/docker/*
# 重新启动
sudo systemctl start docker
如果以上方法都不能解决问题,请提供具体的错误信息以便进一步诊断。