The Docker Engine, the Docker Host, and the Docker Registry are the three main parts of the Docker system.
Docker Client: The "build" and "run" commands are executed by the Docker Client component in order to establish contact with the docker host.
Docker Host: Containers and their corresponding images are hosted by the Docker Host, which also contains the main docker daemon. A connection to the Docker registry is established by the daemon.
Docker Registry: The docker images are stored in the registry. A private register or a public one is possible. Both Docker Hub and Docker Cloud are well-known public registries.