Kubernetes vs. Docker

TL;DR: The relationship between Kubernetes and Docker can be symbiotic, with Docker running containerized applications while Kubernetes manages multiple hosts with Docker installed.
  • OS - Operating System
  • hosts - different operating systems
  • Kubernetes cluster - a collection of nodes managed by a single Kubernetes instance

Docker is software that can be installed on any computer to run containerized applications, allowing users to run, create, and manage containers on a single OS. If you have docker installed in multiple hosts, Kubernetes allows for automation of container provisioning, networking, load-balancing, security, and scaling across all nodes from a single dashboard or command line. Multiple nodes allow for:

  1. A robust infrastructure: an application will continue to run even if some nodes go offline.
  2. To have a scalable application: if workload increases, a user can spawn more containers and/or add more nodes to your Kubernetes cluster

Kubernetes can work with any containerization technology, two of the most popular ones being Docker and rkt. However, Docker is more popular which has led to more integration between the two. Docker also has its own container orchestration engine, Docker Swarm, but still has its own Kubernetes distribution.

Thus, when used together, Docker allows for the creation of containers while Kubernetes is an orchestration platform that can be used to automate container processes.