# Docker vs. Kubernetes. What should we use?

* What is Docker?
    

Docker is an open-source platform that simplifies building, distributing, and running applications using containers. It allows you to create **<mark> lightweight, portable, self-contained containers </mark>** from any application, bundled with all its dependencies.

* What is Kubernetes?
    

Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications. It groups the containers that comprise an application into logical units for easy management and discovery across a cluster of machines. Kubernetes uses container runtimes like **<mark>containerd and CRI-O</mark>** to run containers, instead of Docker Engine.

* How do they differ?
    

**<mark>Docker focuses on automating individual container creation and deployment on a single host. </mark>** While it can manage collections of containers with Docker Swarm, it is more limited compared to Kubernetes in terms of scalability and features.

**<mark>Kubernetes takes container orchestration further by managing clusters of hosts running Linux containers.</mark>** It handles scheduling, load balancing, and provides a robust platform for automating deployment, scaling, and ensuring the desired state of applications.

* Bottomline:
    

**<mark>Docker excels at managing containers on a single system, while Kubernetes is designed for managing and scaling multi-container applications across clusters.</mark>**

---

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1719917977830/d8082e05-cbf8-4da6-878a-4a72a0d60d9a.jpeg align="center")
