当 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 -a
depends_on
(Compose v2+ 需搭配健康检查):
yaml
services:
app:
depends_on:
db:
condition: service_healthy
Address already in use
错误。bash
netstat -tulnp | grep <端口号>
bash
docker run -p 8080:80 <镜像名>
Read-only file system
或挂载卷权限错误。bash
setenforce 0
bash
docker run -v /host/path:/container/path:rw <镜像名>
Error response from daemon
提示镜像无效。bash
docker pull <镜像名>:<标签>
Cannot connect to the Docker daemon
。bash
systemctl restart docker
bash
journalctl -u docker.service
bash
docker rm -f <容器名>
iptables
/cgroup
相关错误。bash
docker info | grep Storage
# 检查容器详细配置
docker inspect <容器名>
# 查看实时事件流
docker events
# 进入容器调试(即使已退出)
docker run -it --rm --entrypoint=/bin/sh <镜像名>
通过以上步骤,可定位 90% 的容器重启问题。若仍无法解决,请提供具体错误日志进一步分析。