Docker Architecture and components

Docker Engine

Docker Engine allows us to develop, assemble, ship, and run applications using the following components:

  • Docker Server (Daemon) : A persistent background process that manages Docker images, containers, networks, and storage volumes. The Docker daemon constantly listens for Docker API requests and processes them.

  • Docker Engine REST API: An API used by applications to interact with the Docker daemon; it can be accessed by an HTTP client.

  • Docker CLI: A command line interface client for interacting with the Docker daemon. It greatly simplifies how you manage container instances and is one of the key reasons why developers love using Docker.

Docker Architecture

The Docker architecture uses a client-server model and comprises the Docker Client, Docker Host, Network and Storage components, and the Docker Registry / Hub.

Docker client

The Docker client enables users to interact with Docker. The Docker client can reside on the same host as the daemon or connect to a daemon on a remote host. A docker client can communicate with more than one server(daemon). The Docker client provides a command line interface (CLI) that allows you to issue build, run, and stop application commands to a Docker daemon.

The main purpose of the Docker Client is to provide a means to direct the pull of images from a registry and to have it run on a Docker host. Common commands issued by a client are:

docker build
docker pull
docker run

Docker Host

The Docker daemon, Images, Containers, Networks, and Storage are all part of it. The daemon, as noted previously, is responsible for all container-related tasks and receives commands via the CLI or REST API. It can also manage its services by communicating with other daemons. The Docker daemon pulls and builds container images based on the client's request. It uses a collection of instructions known as a build file to create a functional model for the container when it pulls a desired image. The build file can also include instructions for the daemon to preload other components before launching the container, as well as instructions to be sent to the local command line after the container has been built.

Docker Registries

Docker registries are services that provide locations from where you can store and download images. In other words, a Docker registry contains Docker repositories that host one or more Docker Images. Public Registries include Docker Hub and Docker Cloud and private Registries can also be used. Common commands when working with registries include:

docker push
docker pull
docker run

Last updated