在 CentOS 上使用 Docker 容器“闪退”(启动后立刻退出),通常不是 Docker 本身崩溃,而是容器前台进程结束导致容器停止。下面按常见原因给你系统说明。
Docker 容器必须有一个前台运行的进程,否则会立刻退出。
❌ 错误示例:
docker run centos
CentOS 镜像默认执行 /bin/bash,但没有交互参数时会立即退出。
✅ 正确方式:
docker run -it centos
或
docker run -d centos sleep infinity
例如:
CMD ["echo", "hello"]
容器打印完就结束 → 闪退。
✅ 解决:
如果你想跑 systemd 容器(如 centos/systemd):
❌ 普通启动会闪退
docker run centos/systemd
✅ 必须加参数:
docker run -d --privileged \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
centos/systemd
否则 systemd 无法启动 → 容器退出。
如果 docker 命令都跑不了:
检查:
systemctl status docker
journalctl -u docker
常见原因:
临时关闭 SELinux 测试:
setenforce 0
docker run --memory=50m centos
如果进程超内存 → 被 kill。
查看原因:
docker ps -a
docker inspect <容器ID>
# 看容器退出码
docker ps -a
# 看日志
docker logs <容器ID>
# 强制前台运行
docker run -it centos bash
CentOS Docker 闪退 = 容器里没有持续运行的前台进程
如果你愿意,可以告诉我:
docker run 命令我可以帮你精确定位并给出可运行命令。