如何自动监视并重新启动docker容器,当它崩溃了?
我目前运行两个虚拟服务器与官方鬼图像和nginx-proxy
图像,这是我的积累。
docker run -d -p 86:2368 --name home -e "VIRTUAL_HOST=hostname.com" ghost docker run -d -p 85:2368 --name home-blog -e "VIRTUAL_HOST=blog.hostname.com" ghost
他们都运行良好,但过了一段时间(有时几个小时或一天),其中一个虚拟服务器将打破,我必须重新启动容器,使其工作。
我不知道是否有任何解决scheme来自动监视docker容器,并重新启动它时,它?
你应该使用--restart
( docs ):
docker run -d -p 86:2368 --restart always --name home -e "VIRTUAL_HOST=hostname.com" ghost
事实上,它更可能是你的容器的主要应用程序崩溃,而不是你的容器。
当ID#0的进程在容器中停止或崩溃时,容器自动停止。
关于你的担心,正如Andy所说的那样,重启选项(来自docker run命令)是一种可能性。
另一种可能是使用supervisord作为容器的主要stream程。 您的应用程序将由supervisord启动和监控。 Supervisord将为您提供很多选项以处理您的应用程序崩溃。 你有很多有用的选项关于日志logging,信号处理…
有关更多详细信息,请参阅https://docs.docker.com/articles/using_supervisord/和http://supervisord.org/ 。