CentOS 上 Docker 启动失败 的原因有很多,下面我按最常见原因 → 排查方法 → 解决办法给你一个系统性的说明,你可以对照排查。
systemctl status docker
现象:
Unit docker.service could not be foundfailed✅ 解决:
yum install -y docker
systemctl enable docker
systemctl start docker
✅ 检查版本:
cat /etc/redhat-release
✅ CentOS 8 推荐:
dnf install -y docker-ce --nobest
或改用:
podman
uname -r
✅ 解决:
yum update -y
reboot
报错示例:
permission denied
SELinux is preventing
✅ 临时关闭测试:
setenforce 0
systemctl restart docker
✅ 永久解决(不推荐生产随便关):
vi /etc/selinux/config
SELINUX=disabled
Docker 依赖 iptables
✅ 检查:
systemctl status firewalld
✅ 建议:
systemctl stop firewalld
systemctl disable firewalld
/var/lib/docker 权限或磁盘问题df -h
ls -ld /var/lib/docker
✅ 清理(慎用):
systemctl stop docker
rm -rf /var/lib/docker
systemctl start docker
cat /etc/docker/daemon.json
❌ 示例错误:
{
"registry-mirrors": "https://xxx"
}
✅ 正确:
{
"registry-mirrors": ["https://xxx"]
}
✅ 修复后:
systemctl restart docker
journalctl -xe -u docker
或:
systemctl status docker -l
你可以按顺序执行:
uname -r
cat /etc/redhat-release
systemctl status docker
journalctl -xe -u docker
cat /etc/docker/daemon.json
请把以下信息贴出来:
systemctl status docker 输出journalctl -xe -u docker 报错daemon.json我可以直接告诉你 是哪一行配置或系统问题导致启动失败。