Chaperone — это простой менеджер запуска в стиле init для Docker-подобных контейнеров. Он работает как единый облегченный полнофункциональный процесс, который запускается в корне дерева контейнеров докеров и предоставляет все следующие функции, а также многое другое:
Мониторинг всех процессов в контейнере, автоматическое завершение работы контейнера при завершении последнего процесса.
Полное, настраиваемое средство системного журнала, встроенное и предоставляемое в /dev/log, чтобы демоны и другие службы могли записывать выходные данные. Настраивается для обработки ротации файлов журналов, дублирования в стандартный вывод/stderr и полного средства ведения журналов Linux, поддержки серьезности. В вашем контейнере не требуется демон системного журнала.
Возможность запускать системные службы в порядке зависимости, с параметрами переменных среды для каждой службы, параметрами перезапуска и захватом stdout/stderr либо в службу журнала, либо в стандартный вывод.
Встроенный сервис планирования cron.
Эмуляция уведомлений systemd (sd_notify), чтобы службы могли публиковать уведомления о готовности и статусе для сопровождающего.
Мониторинг процессов и устранение зомби, а также организованное отключение системы для обеспечения корректного завершения работы всех демонов.
Возможность иметь необязательный процесс управления, указанный в командной строке докера, для упрощения создания контейнеров, которые имеют режим разработки по сравнению с режимом производства.
Полная конфигурация с использованием каталога chaperone.d, который может быть расположен в разных местах и даже допускает различные конфигурации внутри контейнера, срабатывающие в зависимости от того, какой пользователь выбран при запуске.
Поведение по умолчанию разработано для работы с простыми контейнерами Docker для быстрого запуска экономичных контейнеров.