Docker

Docker 中是否內置了用於監控和確保容器始終執行的功能?

  • December 11, 2015

我的第一個想法是 Monit,我用它來監控其他程序。

在 Docker 世界中是否有不同的方式來做到這一點?

我希望同時監控 Docker 守護程序和特定容器。

具體到容器有命令的--restart標誌runhttps://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 系統的範圍。

引用自:https://serverfault.com/questions/741847