We earn commission when you buy through affiliate links.
This does not influence our reviews or recommendations.Learn more.
Lets get familiar with Docker architecture and its essential components.
I assume you have a basic understanding of Docker.
If not, you may refer tothis previous article.
I believe you understand the Docker importance in DevOps.
Now behind this fantastic tool, there has to be an amazing, well-thought architecture.
But before I talk about that, let me showcase the previous and current virtualization systems.
Hence it is lightweight and boots in seconds.
Docker Architecture
Below is the simple diagram of a Docker architecture.
Let me explain you the components of a docker architecture.
Docker Engine
It is the core part of the whole Docker system.
Docker Engine is an software which followsclient-server architecture.
It is installed on the host machine.
When any docker commands runs, the client sends them to dockerd daemon, which carries them out.
Docker API is used by Docker commands.
Docker client can communicate with more than one daemon.
Docker Registries
It is the location where the Docker images are stored.
It can be a public docker registry or a private docker registry.
Docker Hub is the default place of docker images, its stores public registry.
you’re free to also create and run your ownprivate registry.
When you execute docker push command, the docker image is stored on the configured registry.
Docker images are read-only templates with instructions to create a docker container.
you could create your own docker images also using adockerfile.
Docker image has a base layer which is read-only, and the top layer can be written.
When you edit a dockerfile and rebuild it, only the modified part is rebuilt in the top layer.
After you run a docker image, it creates a docker container.
All the applications and their environment run inside this container.
They are completely managed by docker through docker CLI or Docker API.
Volumes work on both Windows and Linux containers.
it’s possible for you to use -v or mount flag to start a container with a volume.
In this sample command, you are using geekvolume volume with geekflare container.
Docker networking is a passage through which all the isolated container communicate.