docker daemon挂掉重启


如果一台服务器上的docker daemon挂掉后,重启为什么他需要重启他的container实例?他们之间有什么强依赖性么?我理解daemon控制container使用的都是持久数据(非内存中)。欢迎讨论
已邀请:

william - cSphere CEO

赞同来自: Denicks


docker daemon的启动通关upstart/systemd管理,如果crash,可以自动启动起来。

container如果设置了restart=always也会启动

徐新坤 - 京东商城-TIG-JDOS团队

赞同来自: Denicks


docker会在docker daemon 启动的时候,将container的进程进行一次判别。如果进程还在,也就是running的,会将其kill调。
根据我对docker源码的理解,docker不放心其他进程来管理。他一定要亲自管理这些容器,他是所有容器的父进程。这样有很多好处。最大的好处就是实时监控,一旦容器挂了,他立即可以知道,并重启(如果容器设置了restart=always的话)。
当然,如 william 所述,如果设置为restart=always,在daemon启动的时候,会自动将该容器启动。但是如果该容器进程还在,docker的流程依然会是kill掉进程,然后启动一个新的容器进程。以保证所有的容器进程仍然是daemon的子进程。

参考问题 如何在线升级Docker?:http://dockerone.com/question/188

要回复问题请先登录注册