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,这将应用更新的设置(可能通过删除和重新创建容器)。