Docker Engine is an open-source containerization technology used for creating and managing containers for applications. It operates as a client-server application with the following components:
Server (dockerd): Docker Engine includes a server component called dockerd which runs as a long-running daemon process. This daemon is responsible for managing containers and containerized applications.
APIs: Docker Engine provides APIs that define interfaces for programs to communicate with and instruct the Docker daemon. These APIs allow for programmatic control of containers.
Command Line Interface (CLI): Users interact with Docker Engine through a command line interface called docker. This CLI uses Docker APIs to issue commands to the Docker daemon, enabling users to manage containers and related resources.
The Docker daemon creates and manages various Docker objects, including images (application snapshots), containers (runtime instances of applications), networks (communication channels between containers), and volumes (persistent storage for containers).
It’s important to note that when Docker daemon is installed on a Windows Server, it is tailored for running Windows containers exclusively, not Linux containers. Additionally, this Windows-specific Docker daemon does not include certain Docker components like buildx and compose. The binary packages for Windows include both dockerd.exe (the daemon) and docker.exe (the CLI), and they are focused on providing the ability to run native Windows containers.
This information provides an overview of Docker Engine’s core components and its compatibility with Windows Server, emphasizing its support for Windows containers.