Docker is the best-known project software that provides users with container-based virtualization technology. The open source platform is based on three basic components: to make containers work, users simply need the Docker engine and special Docker images that can be obtained from the Docker Hub or created by themselves.
The Docker-Hub is a cloud-based registry for software repositories, in other words a kind of library for Docker images. The online service is divided into a public space and a private area. The public space offers users the ability to upload their own images and share them with the community. A number of official images of the Docker development team and established open source projects are available here. Images uploaded to a private area of the registry are not publicly available and may, for example, be shared within the company.
The heart of the Docker project is the Docker engine (Docker-Engine). Demon name generator It is an open source client-server application, whose current version is available to users on all established platforms.
The basic architecture of the Docker-Engine can be divided into three components: a daemon with server functions, a programming interface (API) based on the Representational State Transfer (REST) programming paradigm, and the operating system terminal. (Command-Line Interface, CLI) as the user interface (client).
The Docker daemon: The Docker-Engine uses a daemon process as a server. The docker daemon runs in the background on the host system and is used to control the Docker engine centrally. In this function, he creates and manages all the images, containers or networks.
The REST-API: The REST-API specifies a set of interfaces that allow other programs to communicate and give instructions to the Docker daemon. One of these programs is the operating system terminal.
Terminal: Docker uses the operating system terminal as a client program. It interacts with the daemon via the REST API and allows users to control it through scripts or user input.
Docker allows users to start, stop, and manage software containers directly from the device.
The daemon is addressed using the Docker command and instructions such as build, pull, or run. The client and the server can be on the same system. Alternatively, users have the option to access a Docker daemon on another system. Depending on the type of connection to be established, communication between the client and the server is via REST-API, UNIX sockets, or a network interface.
The following graphic illustrates the interaction of the different Docker components using the docker build, docker pull, and docker run commands:
The docker build command tells the Docker-Daemon to create an image (dashed line). For this, a suitable Dockerfile must be available. If you do not want to create the image yourself, but prefer to load it from a repository into the Docker-Hub, use the docker pull command (dotted line). If the daemon can not find the image, it automatically starts extracting the repository.
Installing the Docker Engine
Originally, Docker was exclusively used on Linux distributions, the current version of the container engine (Container-Engine) is largely independent of the platform. Installation packages are available for Microsoft Windows and macOs as well as cloud services such as Amazon Web Services (AWS) and Microsoft Azure. Supported Linux distributions include: