Docker and Kubernetes aren't rivals. Docker builds, ships and runs containers on a machine, and Kubernetes manages lots of containers across a cluster of machines, restarting failures and scaling them for you. Kubernetes' own docs say it doesn't build your application, so teams use Docker (or another tool) to make the container images and Kubernetes to run them in production. If you run a handful of containers on one server, Docker on its own is usually enough.
This pairing confuses a lot of people, and it's a little unfair, because the two tools sit at different steps of the same job. I read Docker's own overview, plans and Desktop docs and the Kubernetes overview and container runtime pages to set out who does what.
Docker and Kubernetes side by side
| Docker | Kubernetes | |
|---|---|---|
| Main job | Build, ship and run containers | Manage containerized workloads across a cluster |
| Who's behind it | Docker, the company | Open sourced by Google in 2014 |
| Builds your app image | Yes, from a Dockerfile | No, its docs say it doesn't build applications |
| Self-healing | Not its focus | Restarts and replaces failed containers |
| Scaling | Docker Compose for multi-container apps on one host | Horizontal scaling by command, UI or CPU use |
| Free option | Docker Personal plan | Open source project |
| Paid layer | Pro, Team and Business plans | Comes from cloud or vendor services you choose |
The detail most comparisons miss: Docker Desktop already ships Kubernetes
You don't have to pick one to learn the other. Docker's docs say Docker Desktop includes a standalone Kubernetes server and client, and you can create a local cluster from its Kubernetes view. There are two ways to set it up: kubeadm gives you a single-node cluster with a version Docker Desktop chooses, while kind gives you a multi-node cluster where you pick the version and the number of nodes. One catch the docs flag: Docker Desktop for Linux doesn't include kubectl, the Kubernetes command-line tool, so Linux users install it separately.
Docker's free Personal plan includes Docker Desktop, Docker Engine with Kubernetes, Docker Hub, Docker Scout and Docker Debug for one user, so a developer can try both on a laptop without paying anything.
What Docker gives a development team
Docker describes itself as an open platform for developing, shipping and running applications. The docker command talks to the Docker daemon, which builds, runs and distributes your containers, and Docker Compose lets you run an app made of several containers together. Docker Hub is the public registry Docker checks by default when you pull an image. Paid plans add things like synchronized file shares, audit logs, single sign-on and SCIM provisioning, with the Team plan covering up to 100 users.
What Kubernetes adds once you're in production
Kubernetes takes over when one machine isn't enough. Its overview lists service discovery and load balancing, automated rollouts and rollbacks, automatic bin packing of containers onto nodes, self-healing, secret and configuration management and horizontal scaling. It's honest about its limits too: it isn't an all-inclusive platform, it doesn't dictate your logging or monitoring, and its Container Runtime Interface lets it use a wide variety of container runtimes without recompiling the cluster.
Signs you're ready for Kubernetes
- You run more containers than one server can comfortably hold.
- Downtime during releases is costing you customers or sleep.
- You need containers restarted automatically when they fail.
- Traffic swings enough that you want scaling to happen without you.
- Someone on the team can own the cluster, or you'll use a managed service.
If you're hiring for this, my notes on finding DevOps talent for a growing business help, and this round-up of developer productivity tools that work sits well alongside both.
My advice on Docker or Kubernetes
Start with Docker. Containerize your app, run it with Docker Compose and get comfortable with images and registries first. Move to Kubernetes when you have more than one server to manage or when you need automatic restarts and scaling, and use the Kubernetes server inside Docker Desktop to practise before you touch production. For most small businesses a managed Kubernetes service from your cloud provider is far less work than running your own cluster.
Want AI doing the heavy lifting in your marketing?
I build the systems that handle the boring 80 percent, so you get your week back. Done properly, with the human kept in.
Do you make container or DevOps tools? Tool makers can ask to be considered for a featured place in comparisons like this one.
Frequently asked questions
Is Kubernetes replacing Docker?
No. Kubernetes manages containers, and its docs say it doesn't build your application. Teams still use Docker or another tool to build images and Kubernetes to run them at scale.
Can I run Kubernetes inside Docker Desktop?
Yes. Docker Desktop includes a standalone Kubernetes server and client. You can create a single-node cluster with kubeadm or a multi-node cluster with kind.
Is Docker free?
Docker Personal is free for one user and includes Docker Desktop, Docker Engine with Kubernetes and Docker Hub. Pro, Team and Business are paid plans.
Who created Kubernetes?
Google open sourced Kubernetes in 2014, building on more than 15 years of running production workloads, according to the Kubernetes docs.
Do I need Kubernetes for a small app?
Usually not. If your app runs on one server, Docker with Docker Compose covers it. Kubernetes earns its keep when you manage many containers across several machines.


