当 Docker 容器突然"消失"时,可能是由于容器停止、被删除或系统问题导致。以下是逐步排查和解决方案:
# 列出所有容器(包括已停止的)
docker ps -a
Exited
,说明容器已停止。# 启动已停止的容器
docker start <容器名或ID>
# 查看容器日志定位停止原因
docker logs <容器名或ID>
-v
挂载数据卷,数据仍存在于宿主机。
bash
# 查看数据卷
docker volume ls
# 确保 Docker 服务正常运行
systemctl status docker # Linux
sc query docker # Windows
--restart
),需手动启动。bash
docker run --restart=always ...
# 查看 Docker 守护进程日志
journalctl -u docker -n 100 # Linux
aufs
、overlay2
)可能导致容器元数据损坏。
bash
# 查看 Docker 存储信息
docker info | grep "Storage Driver"
如果容器无法恢复,但镜像仍存在:
# 重新运行容器(保留原有配置)
docker run --name <新容器名> -v <数据卷路径> <镜像名>
docker-compose.yml
管理容器,便于重建。bash
docker run --rm -v <卷名>:/data -v $(pwd):/backup busybox tar cvf /backup/volume.tar /data
容器消失 → docker ps -a →
├─ 存在但停止 → docker start + 检查日志
├─ 不存在 →
├─ 检查数据卷 → 重新运行容器
├─ 检查 Docker 服务/系统日志
└─ 无备份 → 从镜像重新部署
通过以上步骤,大多数"容器消失"问题可以定位并解决。关键是根据容器状态(停止/删除)采取对应措施,并优先确保数据安全。