2013-12-19 2 views
2

Docker не работает init. Таким образом, службы не запускаются во время запуска. Lxc запускает init во время lxc-start. Поскольку Docker использует lxc, почему он не запускает init. В чем преимущества не запускать init и в зависимости от supervisord для демонанизации?Почему docker не выполняет init как lxc

ответ

0

Я думаю, что запуск/sbin/init - это просто поведение по умолчанию в lxc-start, оно ожидает выполнения команды. Не существует команды для команды запуска в докере.

Вы можете запустить INIT явно в докер:

docker run ubuntu /sbin/init 

Лично мне нравится такое поведение - я предпочитаю использовать контейнер для моих нескольких процессов, связанных с APSS и мне не нужен инициализация должна быть запущена.

0

Преимущество просто в том, чтобы держать ваш контейнер в легком весе. Вы решаете, какие процессы запускать, и не более того. Таким образом, докер может запустить контейнер действительно очень быстро.

Кстати, вы не зависите от supervisord, как, например, можете написать сложный сценарий оболочки, который вы ввели в свою команду.

Одним из приложений докера является установка его в качестве исполняемого файла. Например. вы можете создавать изображения, которые запускают тесты на единицу или интеграцию. Теперь вы не хотите, чтобы каждый из них запускал несколько десятков служб, которые вы не используете, не так ли?

Смежные вопросы