当 Docker CE (Community Edition) 启动失败时,可以按照以下步骤进行排查和解决:
sudo systemctl status docker
查看错误信息,这通常是解决问题的第一步。
sudo journalctl -u docker -n 100 --no-pager
或者查看特定日志文件(取决于你的系统):
sudo cat /var/log/docker.log
错误表现:
- 类似 failed to start daemon: error initializing graphdriver: driver not supported
解决方案:
# 编辑或创建 Docker 配置文件
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"storage-driver": "overlay2"
}
EOF
# 然后重启 Docker
sudo systemctl restart docker
错误表现:
- 类似 port is already allocated
或 address already in use
解决方案:
# 查看占用端口的进程
sudo netstat -tulnp | grep <端口号>
# 停止冲突服务或修改 Docker 配置使用不同端口
错误表现:
- 类似 Got permission denied while trying to connect to the Docker daemon socket
解决方案:
# 将当前用户加入 docker 组
sudo usermod -aG docker $USER
# 然后重新登录或运行
newgrp docker
错误表现:
- 类似 no space left on device
解决方案:
# 清理 Docker 资源
docker system prune -a
# 或者扩展磁盘空间
错误表现:
- 类似 modprobe: FATAL: Module overlay not found
解决方案:
# 安装必要内核模块
sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
# 然后重启系统
如果以上方法无效,可以尝试完全重置 Docker:
# 停止 Docker 服务
sudo systemctl stop docker
# 删除 Docker 相关文件
sudo rm -rf /var/lib/docker/*
# 重新启动 Docker
sudo systemctl start 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
# 重新安装 Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
确保你的系统满足 Docker 的最低要求: - 64 位 Linux 发行版 - 内核版本 3.10 或更高 - 支持 cgroups 和命名空间
希望这些解决方案能帮助你解决 Docker CE 启动失败的问题。如果问题仍然存在,请提供具体的错误信息以便进一步诊断。