温馨提示×

centos docker为何启动失败

小樊
42
2026-09-05 22:10:29
栏目: 智能运维

CentOS 上 Docker 启动失败 的原因有很多,下面我按最常见原因 → 排查方法 → 解决办法给你一个系统性的说明,你可以对照排查。


一、最常见原因汇总

1️⃣ Docker 服务本身未安装或异常

systemctl status docker

现象:

  • Unit docker.service could not be found
  • 或状态为 failed

✅ 解决:

yum install -y docker
systemctl enable docker
systemctl start docker

2️⃣ CentOS 版本与 Docker 不兼容(很常见)

  • CentOS 6 ❌(已停止支持)
  • CentOS 7 ✅(推荐)
  • CentOS 8 ⚠️(官方 docker 已移除,需用 podman 或 moby)

✅ 检查版本:

cat /etc/redhat-release

✅ CentOS 8 推荐:

dnf install -y docker-ce --nobest

或改用:

podman

3️⃣ 内核版本过低(Docker 要求 ≥ 3.10)

uname -r

✅ 解决:

yum update -y
reboot

4️⃣ SELinux 导致启动失败(CentOS 特有)

报错示例:

permission denied
SELinux is preventing

✅ 临时关闭测试:

setenforce 0
systemctl restart docker

✅ 永久解决(不推荐生产随便关):

vi /etc/selinux/config
SELINUX=disabled

5️⃣ 防火墙 / iptables 冲突

Docker 依赖 iptables

✅ 检查:

systemctl status firewalld

✅ 建议:

systemctl stop firewalld
systemctl disable firewalld

6️⃣ /var/lib/docker 权限或磁盘问题

df -h
ls -ld /var/lib/docker

✅ 清理(慎用):

systemctl stop docker
rm -rf /var/lib/docker
systemctl start docker

7️⃣ daemon.json 配置错误(非常常见)

cat /etc/docker/daemon.json

❌ 示例错误:

{
  "registry-mirrors": "https://xxx"
}

✅ 正确:

{
  "registry-mirrors": ["https://xxx"]
}

✅ 修复后:

systemctl restart docker

8️⃣ 查看真正报错(最重要)

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

三、如果你愿意,我可以直接帮你定位

请把以下信息贴出来:

  1. CentOS 版本
  2. systemctl status docker 输出
  3. journalctl -xe -u docker 报错
  4. 是否改过 daemon.json

我可以直接告诉你 是哪一行配置或系统问题导致启动失败

0