Docker Compose vs Docker Swarm

Docker Compose
Docker Compose

8.2K
6.3K
+ 1
465
Docker Swarm
Docker Swarm

556
618
+ 1
217
Add tool

Docker Compose vs Docker Swarm: What are the differences?

Developers describe Docker Compose as "Define and run multi-container applications with Docker". With Compose, you define a multi-container application in a single file, then spin your application up in a single command which does everything that needs to be done to get it running. On the other hand, Docker Swarm is detailed as "Native clustering for Docker. Turn a pool of Docker hosts into a single, virtual host". Swarm serves the standard Docker API, so any tool which already communicates with a Docker daemon can use Swarm to transparently scale to multiple hosts: Dokku, Compose, Krane, Deis, DockerUI, Shipyard, Drone, Jenkins... and, of course, the Docker client itself.

Docker Compose and Docker Swarm can be categorized as "Container" tools.

"Multi-container descriptor" is the top reason why over 111 developers like Docker Compose, while over 44 developers mention "Docker friendly" as the leading cause for choosing Docker Swarm.

Docker Compose and Docker Swarm are both open source tools. It seems that Docker Compose with 16.4K GitHub stars and 2.52K forks on GitHub has more adoption than Docker Swarm with 5.61K GitHub stars and 1.11K GitHub forks.

According to the StackShare community, Docker Compose has a broader approval, being mentioned in 787 company stacks & 608 developers stacks; compared to Docker Swarm, which is listed in 80 company stacks and 38 developer stacks.

Decisions about Docker Compose and Docker Swarm
Simon Reymann
Simon Reymann
Senior Fullstack Developer at QUANTUSflow Software GmbH · | 23 upvotes · 205.6K views

Our whole DevOps stack consists of the following tools:

  • GitHub (incl. GitHub Pages/Markdown for Documentation, GettingStarted and HowTo's) for collaborative review and code management tool
  • Respectively Git as revision control system
  • SourceTree as Git GUI
  • Visual Studio Code as IDE
  • CircleCI for continuous integration (automatize development process)
  • Prettier / TSLint / ESLint as code linter
  • SonarQube as quality gate
  • Docker as container management (incl. Docker Compose for multi-container application management)
  • VirtualBox for operating system simulation tests
  • Kubernetes as cluster management for docker containers
  • Heroku for deploying in test environments
  • nginx as web server (preferably used as facade server in production environment)
  • SSLMate (using OpenSSL) for certificate management
  • Amazon EC2 (incl. Amazon S3) for deploying in stage (production-like) and production environments
  • PostgreSQL as preferred database system
  • Redis as preferred in-memory database/store (great for caching)

The main reason we have chosen Kubernetes over Docker Swarm is related to the following artifacts:

  • Key features: Easy and flexible installation, Clear dashboard, Great scaling operations, Monitoring is an integral part, Great load balancing concepts, Monitors the condition and ensures compensation in the event of failure.
  • Applications: An application can be deployed using a combination of pods, deployments, and services (or micro-services).
  • Functionality: Kubernetes as a complex installation and setup process, but it not as limited as Docker Swarm.
  • Monitoring: It supports multiple versions of logging and monitoring when the services are deployed within the cluster (Elasticsearch/Kibana (ELK), Heapster/Grafana, Sysdig cloud integration).
  • Scalability: All-in-one framework for distributed systems.
  • Other Benefits: Kubernetes is backed by the Cloud Native Computing Foundation (CNCF), huge community among container orchestration tools, it is an open source and modular tool that works with any OS.
See more

What is Docker Compose?

With Compose, you define a multi-container application in a single file, then spin your application up in a single command which does everything that needs to be done to get it running.

What is Docker Swarm?

Swarm serves the standard Docker API, so any tool which already communicates with a Docker daemon can use Swarm to transparently scale to multiple hosts: Dokku, Compose, Krane, Deis, DockerUI, Shipyard, Drone, Jenkins... and, of course, the Docker client itself.
Why do developers choose Docker Compose?
Why do developers choose Docker Swarm?

Sign up to add, upvote and see more prosMake informed product decisions

What companies use Docker Compose?
What companies use Docker Swarm?

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Docker Compose?
What tools integrate with Docker Swarm?

Sign up to get full access to all the tool integrationsMake informed product decisions

What are some alternatives to Docker Compose and Docker Swarm?
Kubernetes
Kubernetes is an open source orchestration system for Docker containers. It handles scheduling onto nodes in a compute cluster and actively manages workloads to ensure that their state matches the users declared intentions.
Docker
The Docker Platform is the industry-leading container platform for continuous, high-velocity innovation, enabling organizations to seamlessly build and share any application — from legacy to what comes next — and securely run them anywhere
Helm
Helm is the best way to find, share, and use software built for Kubernetes.
Ansible
Ansible is an IT automation tool. It can configure systems, deploy software, and orchestrate more advanced IT tasks such as continuous deployments or zero downtime rolling updates. Ansible’s goals are foremost those of simplicity and maximum ease of use.
Portainer
Portainer is an open-source lightweight management UI which allows you to easily manage your Docker environments. Portainer is available on Windows, Linux and Mac. It has never been so easy to manage Docker !
See all alternatives
Interest over time
Reviews of Docker Compose and Docker Swarm
No reviews found
How developers use Docker Compose and Docker Swarm
Avatar of Chris Saylor
Chris Saylor uses Docker ComposeDocker Compose

Since our production deployment makes use of the Convox platform, we use this to describe the containers to be deployed via Convox to AWS ECS.

We also use this for our local dev environment (previously used vagrant with chef).

Avatar of Scrayos UG (haftungsbeschränkt)
Scrayos UG (haftungsbeschränkt) uses Docker ComposeDocker Compose

Aside from our Minecraft-infrastructure, we compose it with ... Docker Compose! (kinda obious, eh .. ?) This includes for example the web-services, aswell as the monitoring and mail-infrastructure.

Avatar of sapslaj
sapslaj uses Docker ComposeDocker Compose

Docker Compose is just another part of my "infrastructure as code" initiative and allows me to build isolated pieces of systems with their own volumes and networks.

Avatar of Sathish N
Sathish N uses Docker ComposeDocker Compose

Our application will consist of several containers each communicating with each other. Using docker-compose, we can orchestrate several containers at once.

Avatar of Curabase
Curabase uses Docker ComposeDocker Compose

The core tech in ACS (Azure Container Services) we spin up a Kubernetes cluster and deploy our app into staging and production environments here.

How much does Docker Compose cost?
How much does Docker Swarm cost?
Pricing unavailable
Pricing unavailable