почему docker не выполняет init как lxc

почему docker не выполняет init как lxc

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

решение1

Докер — этоконтейнер приложений, больше ориентирован на распространение приложений как контейнеров. В этом приложении/процессе, работающемвнутриконтейнер единственный, который запущен, их процесс init. Если вашему процессу нужно больше приложений (mysql, база данных mongodb и т. д.), вы не запускаете их внутри вашего контейнера docker, управляемого одним демоном init, вы запускаете больше контейнеров docker, каждый внутри контейнера docker.

Можешь попробоватьhttp://phusion.github.io/baseimage-docker/который предоставляет простой демон инициализации для запуска большего количества процессов внутри вашего образа Docker (этот основан на Ubuntu) или вы можете попробовать LXDhttp://www.ubuntu.com/cloud/lxdдля контейнерной технологии, используемой скорее каксистемный контейнер.

решение2

Этот вопрос был поднят какпроблемана GitHub, и объединенный запрос на извлечение позволяет initзапустить его с версии 0.6.x):

docker run $IMAGE /sbin/init

источник

Первоначальная причина, по которой init не был запущен (недействительна, поскольку0.6.x):

При запуске нового контейнера docker mint привязывает себя к /sbin/init внутри контейнера, скрывая настоящий /sbin/init и в процессе делая его недоступным для выполнения.

Этот ответможет предложить больше помощи, иРуководство по Dockerможет пригодиться.

Связанный контент