在 CentOS 上使用 Docker 时容器启动后立刻退出,是非常常见的问题,通常不是 CentOS 本身的问题,而是容器运行机制导致的。下面按「最常见原因 → 排查方法 → 解决方式」给你说明。
Docker 容器不是虚拟机,容器存在的前提是:
容器内必须有一个前台进程在运行
一旦主进程结束,容器就会退出。
❌ 错误示例:
docker run centos
CentOS 镜像默认执行 /bin/bash,但:
-it✅ 正确方式:
docker run -it centos
或常驻进程:
docker run -d centos tail -f /dev/null
-d 但命令会立即结束例如:
docker run -d centos echo hello
echo 执行完 → 容器退出(这是正常的)
如果你自己写了 Dockerfile:
CMD ["ls"]
ls 执行完 → 容器退出
✅ 想常驻:
CMD ["nginx", "-g", "daemon off;"]
很多人想这样跑:
docker run centos systemctl start nginx
❌ 报错或退出,因为:
systemctl 无法工作✅ 正确方式:
CentOS 官方镜像:
所以:
docker run centos
一定会退出
docker ps -a
docker logs <容器ID>
docker inspect <容器ID> | grep ExitCode
常见:
0:正常退出(命令执行完)1:程序报错137:被 kill(内存/OOM)docker run -it centos /bin/bash
docker run -d centos tail -f /dev/null
docker run -d -p 80:80 nginx
CentOS Docker 容器退出,99% 是因为“容器里没有前台进程在跑”。
如果你愿意,可以把:
docker run 命令docker logs贴出来,我可以直接帮你定位是哪一种情况。