Answer the question
In order to leave comments, you need to log in
Why, when they use Docker to raise the environment, do they create a container for each service and not everything in one container?
Http server in one container, database in another, programming language is launched in the third one.
It turns out 3 virtual machines, there are also more overheads than if everything were in one container.
This is probably for subsequent scaling, or not only, or is it nothing to do with it?
Answer the question
In order to leave comments, you need to log in
Вы совсем не понимаете Докер. У него основная концепция - один сервис/приложение - независимое окружение.
Для чего это сделано? Прежде всего безопасность и облегчение развертывания приложения.
Любой администратор линукс (ну и других) систем знает, какого это поддерживать сервер одновременно в актуальном состоянии и нужные версии ПО, библиотеки которых часто между собой конфликтуют, нужно проводить танцы в бубном для того чтобы нужные библиотеки были там те, в другом месте другие. Далее возня с правами, кто под кем запускается, что может, дыры в самом ПО, когда из-за этого будет угроза другим частям системы. Ну и простота настройки, одним одни параметры, другим другие.
Докер позволяет решить эти и кучу других проблем, каждый докер образ это грубо говоря максимально минимизированный образ ОС с установкой только необходим библиотек для конкретного сервиса (например mysql), запускается независимо. Таким образом у себя на сервисе вы имеете возможно спокойно, без затрат умственных ресурсов поднять кучу версий например mysql или php. Да и просто разные программы/сервисы которые могут с друг другом конфликтовать, теперь не будут мешать.
У вас есть свои заготовки образов, либо вы берете готовый рецепт и работаете.
Далее тестирование/разработка значительно упрощается, так как организовать условия максимально приближенные к боевым теперь легче.
Далее можно создавать проверенные системы развертывания, снова таки каждый образ под свои задачи и тд и тп.
Короче говоря да, у докера есть свои минусы, но одновременно это значительный прогресс и облегчения прежде всего работы которая касается улосноый Devops части в разработки ПО, значительно автоматизируются и упрощаются многие штуки.
Так же советую потратить время и посмотреть запись введение в Докер от Хекслет Кирилла Мокевнина. Там небольшие проблемы бывают со звуком, сам вебинар 2 часа, но советую потратить время, он именно рассказывает проблематику, которая привела людей к изобретению Докера и этой концепции.
В основном потому, что докером сильно злоупотребляют, используя его не по назначению.
На примере LAMP
1. Задел на горизонтальную масштабируемость. Нужно сделать несколько бэкендов, делаете два P. Оркестраторы это поддерживают. В одном контейнере не тривиальная задача.
2. Распределённость, изолированность. Общаясь только по сети, все сервисы могут быть запущены на разных нодах, в кластере, etc. Опять из коробки же есть разные плюшки для организации сетей. Сюда же отвязка от файловой системы одного хоста.
3. Один контейнер - один процесс. Докер, как супервизор, либо оркестраторы, берёт на себя часть проблем по перезапуску контейнера. в случае некоторых проблем. Если мухи и смузи в одном стакане (контейнере), самостоятельно придётся решать, к какому из процессов его привязать.
Первый два комментатора похоже не очень умеют в докер. Или не понимают. Или не пробовали.
Получается 3 виртуалки, так же накладных расходов больше, чем если бы всё в одном контейнере было.
Потому что концепция Docker такова, один контейнер - один процесс.
Это делается для удобства использования контейнеров разными службами, своего рода черный ящик.... каждый контейнер делает свою работу и не обязательно что стороннему сервису понадобиться все варианты использования в одном флаконе....
Потому что Docker отвечает за виртуализацию на уровне процессов ОС, то есть отдельных приложений.
Для оркестрации контейнеров используют Kubernetes / Docker Swarm.
Почему когда используют Docker для поднятия окружения, создают по контейнеру на каждый сервис а не всё в одном контейнере?Зависит от подхода к деплою
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question