What's the difference between Docker Compose and Kubernetes?

Kubernetes and Docker Compose are both container orchestration frameworks. Kubernetes runs containers over a number of computers, virtual or real. Docker Compose runs containers on a single host machine.

What's the difference between Docker Compose and Kubernetes?

Containers:

  • Containers are at the core of the other technologies listed here

Docker:

  • Docker is a popular implementation of the technology that allows applications to be bundled into a container.
  • docker is a command-line tool to manage images, containers, volumes, and networks

Docker Compose

  • Docker Compose is the declarative version of the docker cli
  • It can start one or more containers
  • It can create one or more networks and attach containers to them
  • It can create one or more volumes and configure containers to mount them
  • All of this is for use on a single host

Docker Classic Swarm

  • Docker swarm has been abandoned by Docker Inc. and is not being actively maintained or supported.
  • Docker Swarm is for running and connecting containers on multiple hosts.
  • Docker Swarm is a container cluster management and orchestration tool.
  • It manages containers running on multiple hosts and does things like scaling, starting a new container when one crashes, networking containers ...
  • The Docker Swarm file named stack file is very similar to a Docker Compose file
  • The only comparison between Kubernetes and Compose is at the most trivial and unimportant level: they both run containers, but this says nothing to help one understand what the two tools are and where they are useful. They are both useful for different things

Kubernetes

  • Kubernetes (K8S) is a distributed container orchestration tool initially created by Google
  • It was open-sourced in 2014 and handed over to the Cloud Native Computing Foundation (CNCF) the following year
  • The CNCF is an industry body with hundreds of members drawn from the majority of large cloud, software and hardware companies
  • At the time of writing (late 2021) there are nearly a thousand K8S related projects split into around twenty classes with a total of over $21 billion dollars in funding
  • Kubernetes (2021) is the most popular distributed system orchestrator in the world with 88% adoption
  • Because of its near ubiquity, K8S has become the most popular contemporary platform for innovative system development in 2021