Почему когда используют Docker для поднятия окружения, создают по контейнеру на каждый сервис а не всё в одном контейнере?
Http сервер в одном контейнере, БД в другом, язык программирования запускается в третьем.
Получается 3 виртуалки, так же накладных расходов больше, чем если бы всё в одном контейнере было.
Это наверное для последующего масштабирования так или не только или это тут не причем?
В контейнере memcached существует только один запущенный процесс
root@host:~/sites# docker exec -it nginx ps ax
PID TTY STAT TIME COMMAND
1 ? Ss 0:00 nginx: master process nginx -g daemon off;
6 ? Sl 14:59 nginx: worker process
7 ? Sl 0:47 nginx: worker process
22 pts/0 Rs+ 0:00 ps ax
В контейнере nginx существует один запущенный процесс nginx и несколько его воркеров, если хотите, его дочерних процессов.
Т.е. в каждом контейнере только один сервис.
Можно запихать в контейнер и несколько демонов, но тогда теряется смысл от использования докера, по крайней мере в продакшн среде. Но для разработки\тестирования\переносимости удобно.
Lexxtor, профит такой в запущенном контейнере докер следит только за одним процессом - самым главным и единственным, и в случае падения докер сможет перезапустить его. А если у вас будет солянка в контейнере - то при падение одного процесса, контейнер продолжит работать как не в чем не бывало, и у вас все ваше приложение упадет.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.