Docker-Compose/Deamon 如何知道重启后要启动哪个容器?
How does Docker-Compose/Deamon know which container to boot after a reboot?
我是从纯粹的技术角度提问 - 我知道我可以在 Docker Compose 中指定重启策略。但是我想知道这个问题的信息在哪里“当 reboot/power 故障发生时哪些容器是 运行?”被储存了。
或者反过来问,Deamon是怎么知道重启后启动哪个容器的?
是否可以编辑此“文件”/“信息”?
Docker 守护进程保持内部状态以了解哪些容器正在 运行ning,它们从什么图像启动,以及启动时设置,如它们的命令和端口映射。您无法直接查看或访问此数据。
对于大多数容器设置,最可靠的更改方法是停止、删除并重新创建容器。这是非常常规的,您应该确保配置容器,以便在删除它时不会丢失任何数据。 (如果可能,将数据存储在容器外,例如数据库中,如果不能,则使用卷挂载来存储数据。)
可以使用 docker update
更新有限数量的内容而无需重新启动容器,这恰好包括重新启动策略。如果您使用的是 Compose,您可以更新 docker-compose.yml
文件中的 restart:
设置并重新 运行 docker-compose up -d
,这将应用更新的设置(可能通过删除和重新创建容器)。
我是从纯粹的技术角度提问 - 我知道我可以在 Docker Compose 中指定重启策略。但是我想知道这个问题的信息在哪里“当 reboot/power 故障发生时哪些容器是 运行?”被储存了。 或者反过来问,Deamon是怎么知道重启后启动哪个容器的?
是否可以编辑此“文件”/“信息”?
Docker 守护进程保持内部状态以了解哪些容器正在 运行ning,它们从什么图像启动,以及启动时设置,如它们的命令和端口映射。您无法直接查看或访问此数据。
对于大多数容器设置,最可靠的更改方法是停止、删除并重新创建容器。这是非常常规的,您应该确保配置容器,以便在删除它时不会丢失任何数据。 (如果可能,将数据存储在容器外,例如数据库中,如果不能,则使用卷挂载来存储数据。)
可以使用 docker update
更新有限数量的内容而无需重新启动容器,这恰好包括重新启动策略。如果您使用的是 Compose,您可以更新 docker-compose.yml
文件中的 restart:
设置并重新 运行 docker-compose up -d
,这将应用更新的设置(可能通过删除和重新创建容器)。