我正在切换到码头工人。想做像monit这样的事情:如果容器崩溃,重启它。如果内存超过某个限制,请重新启动它。怎么可能呢?
答案 0 :(得分:3)
您可以使用Docker的1.2新功能:Container Restart
。它可能没有monit那么强大(我不知道,因为我不知道该工具)。
您可以将标记--restart=always
添加到docker run
,以告知泊坞窗在崩溃时始终重启容器。
关于内存限制的情况,您可以通过获取容器内监视工具创建的日志从外部监视容器,并使用简单脚本使用docker restart
重新启动容器。或者,如果您自己的程序正在运行,则可以对其进行编码,以便在达到内存限制时以有意义的退出代码退出,并使用--restart=on-failure:<number-of-tries>
重新启动容器。
有关详细信息,请查看Docker 1.2 release note
答案 1 :(得分:1)
尽管docker提供的Container Restart功能提供了一些帮助,但它并不像monit那样彻底。我询问了无花果回购https://github.com/docker/fig/issues/464,并建议使用上帝或Bluepill。我看着上帝,在容器中运行上帝很有意义,让上帝监视我的webapp过程。