Запуск системной службы в контейнере Docker

Я запускаю контейнер Docker, где приложение должно иметь autofs служба запущена, но по умолчанию она не запущена. Контейнер уже использует supervisord чтобы управлять несколькими фоновыми процессами, поэтому я решил добавить сервис в список программ супервизора.

Есть ли способ сделать то, что не повторяет большую часть логики в /etc/init.d/autofs? Что-то вроде:

[program:autofs]
service = autofs

было бы здорово, но этот синтаксис не поддерживается супервизором. Я должен звонить systemctl, service, или же /etc/init.d/autofs напрямую?

1 ответ

Вам нужен сервис для запуска на хосте? В этом случае вам может понадобиться добавить различные точки монтирования, чтобы иметь возможность взаимодействовать с хостом systemd из контейнера и вручную запустить сервис с systemctl,

Альтернатива, которую мы используем на Atomic Host (и которая может использоваться и в других системах) для управления системными службами в контейнерах, - это то, что мы называем "системные контейнеры". Мы используем systemd для запуска и управления контейнером runC. Таким образом, вы можете указать зависимость от другого сервиса непосредственно в файле конфигурации шаблона для systemd.

Другие вопросы по тегам