docker-swarm vs.docker-compose на одном хосте в производстве - PullRequest
0 голосов
/ 10 ноября 2019

Есть ли причина использовать docker-swarm вместо docker-compose на одном хосте в производстве?

В настоящее время я воссоздаю приложение, которое существовало в bevor. Мои предшественники настроили приложение на Docker-Swarm. Но я не понимаю, почему: приложение будет состоять только из одного хоста, на котором выполняется несколько сервисов. Эти сервисы будут предоставлять только некоторую локальную информацию о сети клиента через REST-Api в кластер kubernetes (=> нет реальной нагрузки / причина для добавления дополнительных хостов).

Есть ли преимущества использования docker-swarm по сравнениючтобы создать докер в отношении развертывания, работы в сети, ...?

Я просмотрел веб-сайт докера и не смог найти причину использования docker-swarm на одном хосте, appart vom тестировал развертывание на одном хостесреда разработки.

1 Ответ

1 голос
/ 11 ноября 2019

Docker Swarm и Docker Compose - это принципиально разные животные. Compose - это инструмент сборки, который позволяет вам определять и настраивать группу связанных контейнеров, тогда как Swarm - это инструмент оркестровки, который управляет несколькими механизмами докеров таким образом, что позволяет вам (в некоторой степени) рассматривать их как единое целое. Swarm предоставляет API, который в основном совместим с Docker Remote API, что позволяет существующим приложениям использовать Swarm для горизонтального масштабирования без необходимости полного пересмотра существующего интерфейса с механизмом контейнера.

Тем не менее, большая часть функциональности в Docker Compose, которая перекрывается с Docker Swarm, добавляется постепенно. Со временем Compose вырос, и разница между ними немного сузилась. В конечном итоге Swarm был интегрирован в движок Docker, и был представлен Docker Stack, позволяющий compose.yml файлам считываться непосредственно Docker без использования Compose.

Таким образом, реальный вопрос может быть: что такоеРазница между docker compose и docker stack? Не очень много. На самом деле Compose - это отдельный проект, написанный на Python, в котором используется API Docker. Стек выполняет почти то же самое, что и Compose, но интегрирован в Docker. Стек также нуждается в готовых изображениях, в то время как compose будет обрабатывать эти сборки изображений для вас, что делает compose очень удобным для разработки.

То, с чем вы имеете дело, может быть продуктом времени, когда эти 2 инструмента былинамного более отчетливымDocker Swarm является частью Docker, и он позволяет легко масштабировать при необходимости (даже если он вам сейчас не нужен, это может пригодиться в будущем). С другой стороны, Compose (на мой взгляд, в любом случае) гораздо более полезен для ситуаций разработки, когда вы часто настраиваете свои изображения и перестраиваете.

...