Docker Architecture - Client-server

Let’s look farther behind the scenes of Docker!

Till now, we have used the term, ‘Docker’ very broadly when describing its functionalities, but Docker has different components as part of its ecosystem. From now, we will be specific about the component we are referring to from the ecosystem. Let’s look at the different components of the Docker ecosystem.

Docker ecosystem

  • Docker Registry: Docker maintains all the images in the registry and they can be pulled from the registry too

  • Docker Hub: This is the repository for all your custom-built images. Images can be pushed and accessed from the Hub

  • Docker Client: The CLI tool used to interact with the Docker server

  • Docker Daemon: The Docker server process responsible for pulling, pushing, and building the images. It is also used for running the container

Since we are now clear on the terminologies, let’s see how to run the containers in the next chapter.

Communication between a Docker client and the Docker daemon

A container is an instance of an image. Whenever we need to run a particular image, we need to have that image on the system. Using the Docker client, you can ask the Docker daemon to run a particular image. The daemon will go ahead and look for the image on a system. If it finds the image, it will run the container forked from that image. However, if the image is not present on the system, it will pull the image from the Docker registry and create a container from the image.

Get hands-on with 1400+ tech skills courses.