当在 CentOS 7 上启动 Docker 失败时,可以按照以下步骤进行排查和修复:
首先查看具体的错误信息:
sudo systemctl status docker.service
journalctl -xe
错误表现:devicemapper
相关错误
解决方案:
# 清理旧的Docker数据
sudo rm -rf /var/lib/docker
# 修改存储驱动为overlay2
sudo vi /etc/docker/daemon.json
添加以下内容:
{
"storage-driver": "overlay2"
}
错误表现:SELinux 相关的权限错误
解决方案:
# 临时禁用SELinux
sudo setenforce 0
# 永久禁用(可选)
sudo vi /etc/selinux/config
# 将SELINUX=enforcing改为SELINUX=disabled
解决方案:
# 停止防火墙
sudo systemctl stop firewalld
sudo systemctl disable firewalld
解决方案:
# 检查内核版本
uname -r
# 需要3.10.0-514或更高版本
# 升级内核
sudo yum update kernel
完成上述修改后:
# 重新加载配置
sudo systemctl daemon-reload
# 启动Docker服务
sudo systemctl start docker
# 设置开机启动
sudo systemctl enable docker
sudo docker run hello-world
如果上述方法无效,还可以尝试:
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
df -h
希望这些步骤能帮助您解决 Docker 启动问题。如果仍有问题,请提供具体的错误信息以便进一步诊断。