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 (на мой взгляд, в любом случае) гораздо более полезен для ситуаций разработки, когда вы часто настраиваете свои изображения и перестраиваете.