Docker vs Kubernetes

Need advice about which tool to choose?Ask the StackShare community!

Docker

100.8K
79.7K
+ 1
3.8K
Kubernetes

33.9K
28.4K
+ 1
601
Add tool

Docker vs Kubernetes: What are the differences?

Developers describe Docker as "Enterprise Container Platform for High-Velocity Innovation". 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. On the other hand, Kubernetes is detailed as "Manage a cluster of Linux containers as a single system to accelerate Dev and simplify Ops". 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 belongs to "Virtual Machine Platforms & Containers" category of the tech stack, while Kubernetes can be primarily classified under "Container Tools".

Some of the features offered by Docker are:

  • Integrated developer tools
  • open, portable images
  • shareable, reusable apps

On the other hand, Kubernetes provides the following key features:

  • Lightweight, simple and accessible
  • Built for a multi-cloud world, public, private or hybrid
  • Highly modular, designed so that all of its components are easily swappable

"Rapid integration and build up", "Isolation" and "Open source" are the key factors why developers consider Docker; whereas "Leading docker container management solution", "Simple and powerful" and "Open source" are the primary reasons why Kubernetes is favored.

Docker and Kubernetes are both open source tools. Kubernetes with 55.1K GitHub stars and 19.1K forks on GitHub appears to be more popular than Docker with 54K GitHub stars and 15.6K GitHub forks.

Spotify, Pinterest, and Twitter are some of the popular companies that use Docker, whereas Kubernetes is used by Google, Slack, and Shopify. Docker has a broader approval, being mentioned in 3526 company stacks & 3446 developers stacks; compared to Kubernetes, which is listed in 1048 company stacks and 1097 developer stacks.

Decisions about Docker and Kubernetes
Simon Reymann
Senior Fullstack Developer at QUANTUSflow Software GmbH · | 28 upvotes · 2.6M 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
Florian Sager
IT DevOp at Agitos GmbH · | 2 upvotes · 167.2K views
Chose
LXD
over
Docker

lxd/lxc and Docker aren't congruent so this comparison needs a more detailed look; but in short I can say: the lxd-integrated administration of storage including zfs with its snapshot capabilities as well as the system container (multi-process) approach of lxc vs. the limited single-process container approach of Docker is the main reason I chose lxd over Docker.

See more
Get Advice from developers at your company using Private StackShare. Sign up for Private StackShare.
Learn More
Pros of Docker
Pros of Kubernetes
  • 821
    Rapid integration and build up
  • 688
    Isolation
  • 517
    Open source
  • 504
    Testa­bil­i­ty and re­pro­ducibil­i­ty
  • 459
    Lightweight
  • 217
    Standardization
  • 182
    Scalable
  • 105
    Upgrading / down­grad­ing / ap­pli­ca­tion versions
  • 86
    Security
  • 84
    Private paas environments
  • 33
    Portability
  • 25
    Limit resource usage
  • 15
    I love the way docker has changed virtualization
  • 15
    Game changer
  • 12
    Fast
  • 11
    Concurrency
  • 7
    Docker's Compose tools
  • 4
    Fast and Portable
  • 4
    Easy setup
  • 4
    Because its fun
  • 3
    Makes shipping to production very simple
  • 2
    It's dope
  • 1
    Highly useful
  • 1
    MacOS support FAKE
  • 1
    Its cool
  • 1
    Docker hub for the FTW
  • 1
    Very easy to setup integrate and build
  • 1
    Package the environment with the application
  • 1
    Does a nice job hogging memory
  • 1
    Open source and highly configurable
  • 1
    Simplicity, isolation, resource effective
  • 152
    Leading docker container management solution
  • 121
    Simple and powerful
  • 96
    Open source
  • 73
    Backed by google
  • 56
    The right abstractions
  • 24
    Scale services
  • 17
    Replication controller
  • 9
    Permission managment
  • 6
    Simple
  • 5
    Supports autoscaling
  • 5
    Cheap
  • 3
    Reliable
  • 3
    No cloud platform lock-in
  • 3
    Self-healing
  • 3
    Open, powerful, stable
  • 3
    Scalable
  • 3
    Promotes modern/good infrascture practice
  • 2
    Cloud Agnostic
  • 2
    Backed by Red Hat
  • 2
    Custom and extensibility
  • 2
    Quick cloud setup
  • 2
    Captain of Container Ship
  • 2
    A self healing environment with rich metadata
  • 1
    Everything of CaaS
  • 1
    Easy setup
  • 1
    Expandable
  • 1
    Runs on azure
  • 1
    Sfg
  • 1
    Golang
  • 1
    Gke

Sign up to add or upvote prosMake informed product decisions

Cons of Docker
Cons of Kubernetes
  • 7
    New versions == broken features
  • 4
    Documentation not always in sync
  • 3
    Moves quickly
  • 3
    Unreliable networking
  • 13
    Poor workflow for development
  • 11
    Steep learning curve
  • 5
    Orchestrates only infrastructure
  • 2
    High resource requirements for on-prem clusters

Sign up to add or upvote consMake informed product decisions

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

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.

Need advice about which tool to choose?Ask the StackShare community!

What companies use Docker?
What companies use Kubernetes?
See which teams inside your own company are using Docker or Kubernetes.
Sign up for Private StackShareLearn More

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

What tools integrate with Docker?
What tools integrate with Kubernetes?

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

Blog Posts

+2
2
839
Dec 8 2020 at 5:50PM

DigitalOcean

+11
2
1701
+7
3
643
May 21 2020 at 12:02AM

Rancher Labs

+12
3
1154
Apr 16 2020 at 5:34AM

Rancher Labs

+2
2
745
+14
11
2027
What are some alternatives to Docker and Kubernetes?
LXC
LXC is a userspace interface for the Linux kernel containment features. Through a powerful API and simple tools, it lets Linux users easily create and manage system or application containers.
rkt
Rocket is a cli for running App Containers. The goal of rocket is to be composable, secure, and fast.
Cloud Foundry
Cloud Foundry is an open platform as a service (PaaS) that provides a choice of clouds, developer frameworks, and application services. Cloud Foundry makes it faster and easier to build, test, deploy, and scale applications.
Vagrant
Vagrant provides the framework and configuration format to create and manage complete portable development environments. These development environments can live on your computer or in the cloud, and are portable between Windows, Mac OS X, and Linux.
Red Hat OpenShift
OpenShift is Red Hat's Cloud Computing Platform as a Service (PaaS) offering. OpenShift is an application platform in the cloud where application developers and teams can build, test, deploy, and run their applications.
See all alternatives
Reviews of Docker and Kubernetes
Co-Founder and CTO at Tipe
Review of
Docker

Docker is the new kid on the block disrupting virtualization nowadays. You're able to save up to 70% of your development cost on AWS (or any other cloud) switching to Docker. For example instead of paying for many small VMs you can spin up a large one with many Docker containers to drastically lower your cost. That alone is only one of the reasons why Docker is the future and it's not even the best feature: isolation, testa­bil­i­ty, re­pro­ducibil­i­ty, standardization, security, and upgrading / down­grad­ing / ap­pli­ca­tion versions to name a few. You can spin up 1000's of Docker containers on an ordinary Laptop, but you would have trouble spinning up 100's of VMs. If you haven't already checked out Docker you're missing out on a huge opportunity to join the movement that will change development/production environments forever

Review of
Kubernetes

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.

Review of
Docker

The support for macOS is a fake.

I can't work with docker in macOS because de network and comunications with the container don't works correctly.

How developers use Docker and Kubernetes
ssshake uses
Docker

Currently experimenting. The idea is to isolate any services where I'm not confident yet in their security/quality. The hope is that if there is an exploit in a given service that an attacker won't be able break out of the docker container and cause damage to my systems.

An example of a service I would isolate in a docker container would be a minecraft browser map application I use. I don't know who wrote it, I don't know who's vetting it, I don't know the source code. I would feel a lot better putting this in a container before I expose it to the internet.

I believe I will follow this process for anything that's not properly maintained (not in an trusted apt-repo or some other sort of confidence)

AngeloR uses
Docker

We are testing out docker at the moment, building images from successful staging builds for all our APIs. Since we operate in a SOA (not quite microservices), developers have a dockerfile that they can run to build the entirety of our api infrastructure on their machines. We use the successful builds from staging to power these instances allowing them to do some more manual integration testing across systems.

Yaakov Gesher uses
Docker

Each component of the app was launched in a separate container, so that they wouldn't have to share resources: the front end in one, the back end in another, a third for celery, a fourth for celery-beat, and a fifth for RabbitMQ. Actually, we ended up running four front-end containers and eight back-end, due to load constraints.

sapslaj uses
Docker

Linux containers are so much more lightweight than VMs which is quite important for my limited budget. However, Docker has much more support and tooling for it unlike LXC, hence why I use it. rkt is interesting, although I will probably stick with Docker due to being more widespread.

Equinix-metal uses
Docker

We are running primarily as a micro-services platform and Docker lets us iterate on these smaller units consistently from dev to staging to production. It is also integral to our continuous deployment system for rolling out or rolling back new features.

realcloudratics uses
Kubernetes

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!

Japan Digital Design uses
Kubernetes

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.

ShareThis uses
Kubernetes

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

papaver uses
Kubernetes

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

Andrew Gatenby uses
Kubernetes

It's the glue that holds our container management together, allowing things to scale when and where we need them.