Core Components
As mentioned earlier, the three core components of Docker Engine are:
- Docker Daemon (
dockerd) - The REST API
- Docker CLI Client (
docker)
Docker Daemon
The Docker Daemon, dockerd, is a persistent background process that manages Docker containers, images, networks, and storage volumes. It listens for Docker API requests and handles the various operations required to run and manage containers on the host system.
Docker Daemon can also communicate with other daemons to coordinate and manage Docker services.
There are certain environment variables supported by Docker Daemon. For full list, see this section.
The REST API
The API is implemented in the Docker Daemon and it is exposed via a Unix socket or a network interface, depending on the platform. On Linux, it is available via a Unix socket (/var/run/docker.sock). On Windows, it is exposed via a named pipe (//./pipe/docker_engine).
Docker CLI Client
The Docker Command-Line Interface (CLI), docker, is a user-friendly tool that allows users to interact with the Docker Daemon via terminal commands. When you run a Docker CLI command, the Docker Client converts it into an API request and sends it to the Docker Daemon's corresponding API endpoint.
The Docker client and daemon can run on the same system, or you can connect a Docker client to a remote Docker daemon. Additionally, a single Docker client can communicate with multiple Docker daemons.
There are certain environment variables supported by Docker CLI Client. For full list, see this section.
