Docker Compose vs Docker Swarm vs Kubernetes

Docker Compose
Docker Compose

4.4K
45
446
Docker Swarm
Docker Swarm

389
0
201
Kubernetes
Kubernetes

6.6K
3.9K
544

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.

What is 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.

Want advice about which of these to choose?Ask the StackShare community!

Why do developers choose Docker Compose?
Why do developers choose Docker Swarm?
Why do developers choose Kubernetes?
What are the cons of using Docker Compose?
What are the cons of using Docker Swarm?
What are the cons of using Kubernetes?
What companies use Docker Compose?
What companies use Docker Swarm?
What companies use Kubernetes?
What are some alternatives to Docker Compose, Docker Swarm, and Kubernetes?
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.
Rancher
Rancher is an open source container management platform that includes full distributions of Kubernetes, Apache Mesos and Docker Swarm, and makes it simple to operate container clusters on any cloud or infrastructure platform.
Docker Machine
Machine lets you create Docker hosts on your computer, on cloud providers, and inside your own data center. It creates servers, installs Docker on them, then configures the Docker client to talk to them.
See all alternatives
What tools integrate with Docker Compose?
What tools integrate with Docker Swarm?
What tools integrate with Kubernetes?
Decisions about Docker Compose, Docker Swarm, and Kubernetes
Sebastian Gębski
Sebastian Gębski
CTO at Shedul/Fresha · | 6 upvotes · 22.1K views
atFresha EngineeringFresha Engineering
Amazon RDS
Amazon S3
Amazon EKS
Amazon EC2
Ansible
Terraform
Kubernetes
Docker Compose
Docker

Heroku was a decent choice to start a business, but at some point our platform was too big, too complex & too heterogenic, so Heroku started to be a constraint, not a benefit. First, we've started containerizing our apps with Docker to eliminate "works in my machine" syndrome & uniformize the environment setup. The first orchestration was composed with Docker Compose , but at some point it made sense to move it to Kubernetes. Fortunately, we've made a very good technical decision when starting our work with containers - all the container configuration & provisions HAD (since the beginning) to be done in code (Infrastructure as Code) - we've used Terraform & Ansible for that (correspondingly). This general trend of containerisation was accompanied by another, parallel & equally big project: migrating environments from Heroku to AWS: using Amazon EC2 , Amazon EKS, Amazon S3 & Amazon RDS.

See more
Emanuel Evans
Emanuel Evans
Senior Architect at Rainforest QA · | 12 upvotes · 53.7K views
atRainforest QARainforest QA
Terraform
Helm
Google Cloud Build
CircleCI
Redis
Google Cloud Memorystore
PostgreSQL
Google Cloud SQL for PostgreSQL
Google Kubernetes Engine
Kubernetes
Heroku

We recently moved our main applications from Heroku to Kubernetes . The 3 main driving factors behind the switch were scalability (database size limits), security (the inability to set up PostgreSQL instances in private networks), and costs (GCP is cheaper for raw computing resources).

We prefer using managed services, so we are using Google Kubernetes Engine with Google Cloud SQL for PostgreSQL for our PostgreSQL databases and Google Cloud Memorystore for Redis . For our CI/CD pipeline, we are using CircleCI and Google Cloud Build to deploy applications managed with Helm . The new infrastructure is managed with Terraform .

Read the blog post to go more in depth.

See more
GitHub
nginx
ESLint
AVA
Semantic UI React
Redux
React
PostgreSQL
ExpressJS
Node.js
FeathersJS
Heroku
Amazon EC2
Kubernetes
Jenkins
Docker Compose
Docker
#Frontend
#Stack
#Backend
#Containers
#Containerized

Recently I have been working on an open source stack to help people consolidate their personal health data in a single database so that AI and analytics apps can be run against it to find personalized treatments. We chose to go with a #containerized approach leveraging Docker #containers with a local development environment setup with Docker Compose and nginx for container routing. For the production environment we chose to pull code from GitHub and build/push images using Jenkins and using Kubernetes to deploy to Amazon EC2.

We also implemented a dashboard app to handle user authentication/authorization, as well as a custom SSO server that runs on Heroku which allows experts to easily visit more than one instance without having to login repeatedly. The #Backend was implemented using my favorite #Stack which consists of FeathersJS on top of Node.js and ExpressJS with PostgreSQL as the main database. The #Frontend was implemented using React, Redux.js, Semantic UI React and the FeathersJS client. Though testing was light on this project, we chose to use AVA as well as ESLint to keep the codebase clean and consistent.

See more
Interest over time
Reviews of Docker Compose, Docker Swarm, and Kubernetes
Review ofKubernetesKubernetes

It's a little bit complex to onboard, but once you grasp all the different concepts the platform is really powerful, and infrastructure stops being an issue.

Service discovery, auto-recovery, scaling and orchestration are just a few of the features you get.

How developers use Docker Compose, Docker Swarm, and Kubernetes
Avatar of Matt Welke
Matt Welke uses KubernetesKubernetes

Just tinkering with it for personal use at this stage based on positive experience using it at work. Plan to use it for high traffic distributed systems if not using a managed hosting service like Heroku, AWS Lambda, or Google Cloud Functions. Reasons for using instead of these alternatives would be cheaper cost at higher scale.

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 realcloudratics
realcloudratics uses KubernetesKubernetes

Good existential question. Kubernetes is painful in the extreme - especially when combined with Ansible. The layers of indirection are truly mind altering. But hey - containers are kewl!

Avatar of Japan Digital Design
Japan Digital Design uses KubernetesKubernetes

Our developer experience system is on Kubernetes (Google Kubernetes Engine at the moment). We would like to expand our Kubernetes clusters over other Kubernetes engine.

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.

Avatar of ShareThis
ShareThis uses KubernetesKubernetes

Kubernetes is used for managing microclusters within our AWS infrastructure. This allows us to deploy new infrastructure in seconds.

Avatar of papaver
papaver uses KubernetesKubernetes

minor experience with kubernetes. helped a client setup a kubernetes infrastructure. love the elegance of the system.

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