当Docker容器意外停止时,可以通过以下步骤进行排查和重启:
docker ps -a # 查看所有容器(包括已停止的)
STATUS
是否为Exited
,并记录CONTAINER ID
或名称。docker start <容器ID或名称> # 直接启动已停止的容器
docker logs <容器ID或名称> # 检查错误日志
-p 8080:80
→ -p 8081:80
)。docker inspect <容器ID或名称> # 查看详细配置(如挂载卷、环境变量等)
如果配置需要调整,可删除旧容器并重新创建:
docker rm <容器ID或名称> # 删除容器(需先停止)
docker run -d --name <名称> [其他参数] <镜像名> # 重新运行
-p 宿主机端口:容器端口
(端口映射)-v 宿主机路径:容器路径
(挂载卷)-e KEY=VALUE
(环境变量)在运行容器时添加--restart
策略,避免手动干预:
docker run -d --restart unless-stopped <镜像名>
no
:不自动重启(默认)on-failure
:非0退出时重启always
:总是重启unless-stopped
:除非手动停止,否则一直重启bash
docker stats # 查看容器资源占用(CPU/内存)
-m 512m
限制内存。bash
docker exec -it <容器ID> sh # 进入容器检查文件
docker logs mysql_container # 查看错误
docker start mysql_container # 直接启动
# 或调整配置后重新运行
docker run -d --name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--restart unless-stopped \
-v /data/mysql:/var/lib/mysql \
mysql:8.0
docker stop nginx_old
docker run -d --name nginx_new -p 8080:80 nginx
通过以上步骤,可以快速恢复容器运行。关键是通过日志定位根本原因,避免重复崩溃。