What is Docker ?
Docker is an open-source platform that enables developers to package, distribute, and run applications in containers. These containers are isolated, lightweight environments that encapsulate applications and their dependencies.
What is Kubernetes ?
Kubernetes is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications across a node cluster.
What are the differences?
Docker operates at the level of individual containers on a single operating system host. This means that each host must be manually managed, and setting up networks, security policies, and storage for related containers can be complex.
On the other hand, Kubernetes operates at the cluster level, managing multiple containerized applications across multiple hosts. It provides automation for tasks such as load balancing, scaling, and ensuring the desired state of applications. In summary, Docker focuses on containerization and running containers on individual hosts, while Kubernetes specializes in managing and orchestrating containers at scale across a cluster of hosts.
How does Docker work?
The diagram depicts the architecture of Docker and its functioning during "docker build," "docker pull," and "docker run."
Docker architecture consists of three main components:
1. Docker client: It communicates with the Docker daemon to execute commands and manage containers, networks, images, and volumes.
2. Docker host: The Docker daemon listens to requests from the Docker API and manages Docker objects like images, containers, networks, and volumes.
3. Docker registry: This is where Docker images are stored. Docker Hub is a public registry that anyone can use.
Let’s take the “docker run” command as an example.
Docker pulls the image from the registry.
Docker creates a new container.
Docker allocates a read-write filesystem to the container.
Docker creates a network interface to connect the container to the default network.
Docker starts the container.