Kubernetes vs. Docker

docker kubernetes Jan 10, 2021
docker vs kubernetes

As a Docker Captain and a Udemy instructor to 300,000 Docker and Kubernetes students, the Kubernetes vs. Docker topic comes up a lot. Like me, the tech world is enamored with container tooling, of which Docker and Kubernetes are the two top brands.

Versus isn’t the right question, though, because using these tools isn’t an either-or equation.

Consider these definitions:

  • Docker Engine is a “container runtime.” It knows how to run and manage containers on a single operating system host. You must control each host separately.
  • Kubernetes (K8s) is an open-source “container orchestration platform” (AKA orchestrator). It knows how to manage containers across many operating system hosts, which in turn, run their own container runtime.

There’s a lot to unpack in those statements. In this post, I’ll address questions like the following:

  • What are these tools, and why are they important?
  • Is “Docker Engine” different from Docker?
  • Does everyone need both Docker and Kubernetes?
  • What are their alternatives?
  • What about serverless, and how are containers related?

Let’s dig in!

Docker origins

In 2013, Solomon Hykes, CEO of Dotcloud, announced the Docker open source project. When it hit 1.0 in 2014, I gave it a try. It was “love at first deploy.”

The more I understood about its features, the more I wanted to use Docker everywhere.

The concept of containerized applications – using containers to isolate many apps from each other on a single server – has existed for decades. Yet, there wasn’t an easy-to-use tool that focused on the full application lifecycle until Docker.

Bret's container and DevOps learnings, in your inbox!

Join my newsletter for weekly-ish updates on content I'm creating: videos, articles, events, courses and more.