2014-09-02 51 views
3

我正在切换到码头。想要做类似monit的事情:如果容器崩溃,请重新启动它。如果内存高于某个限制,请重新启动它。它怎么能做到?docker的monit?

回答

1

虽然泊坞窗提供的集装箱重启功能给予一定的帮助,它并不像monit的彻底。我询问了无花果回购https://github.com/docker/fig/issues/464,并建议使用God或Bluepill。我看着上帝,它在容器中运行上帝很有意义,让上帝监视webapp进程。

3

您可以使用Docker的1.2新功能:Container Restart。它可能不像monit那样强大(虽然我不知道这个工具,但我不知道)。

您可以将标记--restart=always添加到docker run以告知docker在崩溃时始终重新启动容器。

关于内存限制的情况,您可以通过从容器内部获取监控工具创建的日志并使用docker restart和一个简单的脚本重新启动它。或者,如果您有自己的程序正在运行,则可以对其进行编码,以便在达到内存限制时使用有意义的退出代码退出,并使用--restart=on-failure:<number-of-tries>重新启动容器。

欲了解更多信息,您可以看看码头工人1.2 release note

+1

感谢您的信息。从发布说明中,我会说'on-failure'采取'on-failure:重启次数'的形式,而不是退出代码。 – 2014-09-02 09:25:25

+0

是的,你是对的!我编辑了我的答案。 – abronan 2014-09-02 09:31:30