当 Docker 容器无法重启时,可能涉及多种原因。以下是系统化的排查步骤和解决方案:
docker ps -a | grep <容器名/ID>
Exited 状态且重启失败。CMD/ENTRYPOINT)配置错误。docker logs <容器名/ID>docker run -it --entrypoint=/bin/sh <镜像名>docker info 检查 Docker Root Dir)。bash
docker run --memory=1g --restart=always <镜像名>bash
docker system prune -adepends_on(Compose v2+ 需搭配健康检查):
yaml
services:
app:
depends_on:
db:
condition: service_healthyAddress already in use 错误。bash
netstat -tulnp | grep <端口号>bash
docker run -p 8080:80 <镜像名>Read-only file system 或挂载卷权限错误。bash
setenforce 0bash
docker run -v /host/path:/container/path:rw <镜像名>Error response from daemon 提示镜像无效。bash
docker pull <镜像名>:<标签>Cannot connect to the Docker daemon。bash
systemctl restart dockerbash
journalctl -u docker.servicebash
docker rm -f <容器名>iptables/cgroup 相关错误。bash
docker info | grep Storage# 检查容器详细配置
docker inspect <容器名>
# 查看实时事件流
docker events
# 进入容器调试(即使已退出)
docker run -it --rm --entrypoint=/bin/sh <镜像名>
通过以上步骤,可定位 90% 的容器重启问题。若仍无法解决,请提供具体错误日志进一步分析。