使用 docker run
命令启动一个容器时,如果系统关机或者容器被设置为自动清理(即使没有使用 --rm
标志),容器的生命周期将取决于几个因素:
-
系统关机:
- 如果宿主机在容器运行时突然关机或重启,Docker 容器将不会被正常关闭。容器的文件系统和状态将被保留,但容器将不再运行。
- 当宿主机重新启动后,您可以使用
docker start [容器ID或名称]
命令来重新启动之前的容器。
-
自动清理:
- 如果您没有使用
--rm
标志,容器在退出后不会被自动删除。这意味着,即使容器停止运行,它仍然存在于Docker的容器列表中,直到您显式地使用 docker rm [容器ID或名称]
命令来删除它。 - 然而,如果容器在运行时系统发生崩溃或关机,容器不会被自动清理。您需要在系统重新启动后手动清理。
-
数据持久性:
- 您使用
-v
参数将宿主机的目录挂载到容器中,这意味着容器内部对挂载目录的更改会反映到宿主机上。即使容器被删除,挂载目录中的数据也不会丢失。
-
容器状态:
- 如果容器在系统关机时正在运行,它将不会自动恢复到之前的状态。您需要手动重新启动容器。
系统关机,容器不会自动清理,需要在系统重新启动后手动处理这些容器。可以使用 docker ps -a
命令来查看所有容器的状态,并根据需要重新启动或删除它们。