当 Docker 后台服务无法运行时,可以按照以下步骤进行排查和解决:
# 对于使用 systemd 的系统
sudo systemctl status docker
# 对于使用 init.d 的系统
sudo service docker status
如果服务未运行:
# systemd 系统
sudo systemctl start docker
# init.d 系统
sudo service docker start
# 查看最近的日志
journalctl -u docker.service --no-pager -n 50
# 或查看完整日志
journalctl -u docker.service
错误表现:日志中显示存储驱动相关错误
# 解决方案:修改存储驱动
sudo vi /etc/docker/daemon.json
添加内容:
{
"storage-driver": "overlay2"
}
然后重启 Docker:
sudo systemctl restart docker
错误表现:端口已被占用
# 检查端口占用
sudo netstat -tulnp | grep 2375
# 或
sudo lsof -i :2375
# 解决方案:停止占用进程或修改 Docker 监听端口
错误表现:权限被拒绝
# 解决方案:确保用户属于 docker 组
sudo usermod -aG docker $USER
newgrp docker
# 检查 /var/run/docker.sock 权限
ls -l /var/run/docker.sock
# 检查磁盘空间
df -h
# 清理 Docker 资源
docker system prune -a
# 检查内核版本
uname -r
# 解决方案:升级内核或使用兼容的 Docker 版本
如果以上方法无效,可以尝试完全卸载后重新安装:
# 卸载 Docker
sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
# 重新安装
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
如果问题仍然存在,请提供具体的错误信息以便进一步诊断。