Docker 中是否內置了用於監控和確保容器始終執行的功能?
我的第一個想法是 Monit,我用它來監控其他程序。
在 Docker 世界中是否有不同的方式來做到這一點?
我希望同時監控 Docker 守護程序和特定容器。
具體到容器有命令的
--restart
標誌run
:https://docs.docker.com/engine/reference/commandline/run/#restart-policies-restart。在更現代的 Linux 發行版(例如 CoreOS 和 Ubuntu)上,您可以使用 systemd 和 Upstart 來管理守護程序。
例如,在 Ubuntu 上,Docker 的預設 Upstart 配置預設啟用了
respawn
節 ( http://upstart.ubuntu.com/cookbook/#respawn )。在 systemd 領域,CoreOS 有類似的東西來啟動 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= ) 來實現類似的功能。但是,這兩個選項都不執行任何本機警報或消息傳遞。不過,您可能可以配置某種執行
OnFailure=
Docker systemd 單元的“郵件程序”單元。但我認為這超出了 Docker 和 init 系統的範圍。