In my previous article, I shared the basic idea of Containerization. In this article, I will explain the high-level architecture of containers.
It is important to understand the architecture of the containers.
Let us start with the Server. To run the container we need a machine. It can be a local desktop/laptop machine or a server.
The server can be either a physical server or a virtual machine. On top of our server, we need to install Windows Server 2019 first.
Then we need to install the Docker engine on it. After this installation, we can run the containers on to of Docker engine.
But, we cannot start or run those containers from Docker engine on the Windows server 2019.
To run the container, we need to install and use Docker client. The Docker client will communicate with Docker engine through an API.
Please refer to the below diagram.
Below diagram will give a high-level view of containers.
As you can see in the below diagram, all the containers are sharing the host OS kernel and hardware.
Let’s look inside the container is which running on top of Docker engine.
All containers are supposed to have a core image. For example Windows Server Core image.
On top of it, we will install the IIS Web Server to serve the web pages and perhaps ASP .Net applications
Then, we can install some custom applications and settings for our applications if required
Please refer to the below diagram for reference,
All these components can be considered as layers. We can replace each layers separately without affecting the others. For example, we can upgrade the version of Windows Core; we do not need to rebuild the entire container. Because the containers are designed as layers.
Summary
In this article, I tried to explain container hierarchy.
I will share more about containerization in my next article.