Docker Swarm vs Kubernetes vs Rancher

Docker Swarm
Docker Swarm

+ 1

+ 1

+ 1

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.

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

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

Why do developers choose Docker Swarm?
Why do developers choose Kubernetes?
Why do developers choose Rancher?

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

What are the cons of using Docker Swarm?
What are the cons of using Kubernetes?
What are the cons of using Rancher?
What companies use Docker Swarm?
What companies use Kubernetes?
What companies use Rancher?

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

What tools integrate with Docker Swarm?
What tools integrate with Kubernetes?
What tools integrate with Rancher?

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

What are some alternatives to Docker Swarm, Kubernetes, and Rancher?
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.
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.
Apache Mesos
Apache Mesos is a cluster manager that simplifies the complexity of running applications on a shared pool of servers.
CoreOS is designed for security, consistency, and reliability. Instead of installing packages via yum or apt, CoreOS uses Linux containers to manage your services at a higher level of abstraction. A single service's code and all dependencies are packaged within a container that can be run on one or many CoreOS machines.
Compose makes it easy to spin up multiple open source databases with just one click. Deploy MongoDB for production, take Redis out for a performance test drive, or spin up RethinkDB in development before rolling it out to production.
See all alternatives
Decisions about Docker Swarm, Kubernetes, and Rancher
Yshay Yaacobi
Yshay Yaacobi
Software Engineer · | 26 upvotes · 134.9K views
Docker Swarm
Visual Studio Code

Our first experience with .NET core was when we developed our OSS feature management platform - Tweek ( We wanted to create a solution that is able to run anywhere (super important for OSS), has excellent performance characteristics and can fit in a multi-container architecture. We decided to implement our rule engine processor in F# , our main service was implemented in C# and other components were built using JavaScript / TypeScript and Go.

Visual Studio Code worked really well for us as well, it worked well with all our polyglot services and the .Net core integration had great cross-platform developer experience (to be fair, F# was a bit trickier) - actually, each of our team members used a different OS (Ubuntu, macos, windows). Our production deployment ran for a time on Docker Swarm until we've decided to adopt Kubernetes with almost seamless migration process.

After our positive experience of running .Net core workloads in containers and developing Tweek's .Net services on non-windows machines, C# had gained back some of its popularity (originally lost to Node.js), and other teams have been using it for developing microservices, k8s sidecars (like, cli tools, serverless functions and other projects...

See more
Russel Werner
Russel Werner
Lead Engineer at StackShare · | 0 upvotes · 1.5K views
Amazon EC2 Container Service
Google Kubernetes Engine
Amazon EKS

We began our hosting journey, as many do, on Heroku because they make it easy to deploy your application and automate some of the routine tasks associated with deployments, etc. However, as our team grew and our product matured, our needs have outgrown Heroku. I will dive into the history and reasons for this in a future blog post.

We decided to migrate our infrastructure to Kubernetes running on Amazon EKS. Although Google Kubernetes Engine has a slightly more mature Kubernetes offering and is more user-friendly; we decided to go with EKS because we already using other AWS services (including a previous migration from Heroku Postgres to AWS RDS). We are still in the process of moving our main website workloads to EKS, however we have successfully migrate all our staging and testing PR apps to run in a staging cluster. We developed a Slack chatops application (also running in the cluster) which automates all the common tasks of spinning up and managing a production-like cluster for a pull request. This allows our engineering team to iterate quickly and safely test code in a full production environment. Helm plays a central role when deploying our staging apps into the cluster. We use CircleCI to build docker containers for each PR push, which are then published to Amazon EC2 Container Service (ECR). An upgrade-operator process watches the ECR repository for new containers and then uses Helm to rollout updates to the staging environments. All this happens automatically and makes it really easy for developers to get code onto servers quickly. The immutable and isolated nature of our staging environments means that we can do anything we want in that environment and quickly re-create or restore the environment to start over.

The next step in our journey is to migrate our production workloads to an EKS cluster and build out the CD workflows to get our containers promoted to that cluster after our QA testing is complete in our staging environments.

See more
Robert Zuber
Robert Zuber
CTO at CircleCI · | 6 upvotes · 6K views

Our backend consists of two major pools of machines. One pool hosts the systems that run our site, manage jobs, and send notifications. These services are deployed within Docker containers orchestrated in Kubernetes. Due to Kubernetes’ ecosystem and toolchain, it was an obvious choice for our fairly statically-defined processes: the rate of change of job types or how many we may need in our internal stack is relatively low.

The other pool of machines is for running our users’ jobs. Because we cannot dynamically predict demand, what types of jobs our users need to have run, nor the resources required for each of those jobs, we found that Nomad excelled over Kubernetes in this area.

We’re also using Helm to make it easier to deploy new services into Kubernetes. We create a chart (i.e. package) for each service. This lets us easily roll back new software and gives us an audit trail of what was installed or upgraded.

See more
Interest over time
Reviews of Docker Swarm, Kubernetes, and Rancher
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.

Avatar of gonuts
Michigan Technological University
Review ofRancherRancher
  1. Consume too much unnecessary resource by just running rancher agent alone;
  2. Hard to recover from system failure
  3. Bad performance of load balancing (compare to dokcer swarm built-in LB or others).
How developers use Docker Swarm, Kubernetes, and Rancher
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 etlweather
etlweather uses RancherRancher

The whole infrastructure is managed through Rancher. It provides a simple interface to all the underlying tools - Docker, HAProxy (automatically configures load balancer from the containers).

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

Avatar of sapslaj
sapslaj uses RancherRancher

Currently looking to move to Swarm or Kubernetes due to a few issues I have with Rancher.

Avatar of Ataccama
Ataccama uses RancherRancher

Orchestration of containers for our environments. Remote deployment from Jenkins.

Avatar of uses RancherRancher

We use Rancher for container orchestration and automated deployment pipelines.

Avatar of Dave Woolfenden
Dave Woolfenden uses RancherRancher

Enterprise-grade Kubernetes Distribution

How much does Docker Swarm cost?
How much does Kubernetes cost?
How much does Rancher cost?
Pricing unavailable
Pricing unavailable
News about Rancher
More news