Назад | Перейти на главную страницу

Есть ли в Docker встроенная функция для мониторинга и обеспечения постоянной работы контейнеров?

Моей первой мыслью был Monit, который я использую для мониторинга других процессов.

Есть ли другой способ сделать это во вселенной Docker?

Я хочу отслеживать как демон Docker, так и определенные контейнеры.

Специально для контейнеров есть --restart флаг для run команда: https://docs.docker.com/engine/reference/commandline/run/#restart-policies-restart.

В более современных дистрибутивах Linux (таких как CoreOS и Ubuntu) вы получаете systemd и Upstart, управляющие демонами.

Например, в Ubuntu конфигурация Upstart по умолчанию для Docker имеет 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 и систем инициализации.