Docker Engine is a client-server application that has the following major components:
- A daemon process, which is a server and long-running process in the background
- A REST service interface, which used to talk to the daemon process and instruct it what to do
- A command-line interface (CLI) client
Let's see the following diagram about Docker Engine:
As you can see, the Docker CLI is the client that manages container, image, network, and data volumes. The Docker client uses the REST API to interact with the server, which is a docker daemon process.