Docker Architecture
Last updated
Last updated
Docker uses a client-server architecture.
The Docker client talks to the Docker daemon, which does the heavy lifting of building, running, and distributing your Docker containers.
The Docker client and daemon can run on the same system, or you can connect a Docker client to a remote Docker daemon.
The Docker client and daemon communicate using a REST API, over UNIX sockets or a network interface.
Docker daemon manages all the services by communicating with other daemons.
It manages docker objects such as images, containers, networks, and volumes with the help of the API requests of Docker.
With the help of the docker client, the docker users can interact with the docker.
The docker command uses the Docker API.
The Docker client can communicate with multiple daemons.
When a docker client runs any docker command on the docker terminal then the terminal sends instructions to the daemon.
The Docker daemon gets those instructions from the docker client withinside the shape of the command and REST API’s request.
A Docker host is a type of machine that is responsible for running more than one container.
It comprises the Docker daemon, Images, Containers, Networks, and Storage.
All the docker images are stored in the docker registry.
With the help of docker run or docker pull commands, we can pull the required images from our configured registry.
Images are pushed into configured registry with the help of the docker push command.
Docker Engine is an open source containerization technology for building and containerizing your applications.
Docker Engine acts as a client-server application.
Containers
Containers are created from docker images as they are ready applications. With the help of Docker API or CLI, we can start, stop, delete, or move a container.
Images
An image contains instructions for creating a docker container. It is just a read-only template. It is used to store and ship applications.
Storage
We can store data within the writable layer of the container but it requires a storage driver. Storage driver controls and manages the images and containers on our docker host.
Network
Docker networking provides complete isolation for docker containers. It means a user can link a docker container to many networks. It requires very less OS instances to run the workload.
There is a public registry which is known as a that can be used by anyone. We can run our private registry also.