我首先想到的是Monit,我用它来监视其他进程。
在Docker中有没有不同的方法呢?
我希望监视Docker守护进程和特定的容器。
特定于容器的是run命令的--restart标志: https : --restart 。
在更现代的Linux发行版(如CoreOS和Ubuntu)上,您可以使用systemd和Upstartpipe理守护进程。
例如,在Ubuntu上,Docker默认的Upstartconfiguration默认启用了respawn节( http://upstart.ubuntu.com/cookbook/#respawn )。
在systemd领域,CoreOS具有类似的function来启动Docker守护进程: https : //github.com/coreos/coreos-overlay/blob/bed6ea27913a1d9595b62e05174ac4a841c7fabb/app-emulation/docker/files/docker.service 。 您可以自定义( https://coreos.com/os/docs/latest/customizing-docker.html )已使用的systemd单元,并使用Restart=选项( http://www.freedesktop.org/software/systemd /man/systemd.service.html#Restart= )来实现类似的function。
但是,这两个选项都不会执行任何本机警报或消息传递。 尽pipe如此,你也许可以configuration一些运行OnFailure= Docker系统单元的“邮件程序”单元。 但是我会把它叫做Docker和init系统的范围。