Architecture & Components
Docker Client: It takes user inputs and sends to daemon and is the primary UI to Docker which accepts commands from the user and responds to and fro with a Docker daemon.
Docker Daemon: It can run on same or separate hosts. It manages Docker processes by running them inside LXC containers. Daemon builds, runs, and ships containers.
Docker Engine is a packaging tool which provides a powerful work flow for building and containerizing your applications. Helps to build, ship, run and manage the containers
Docker Hub hosts registry to upload and manage your apps in order to automate workflows
Docker image (a build component) is a read only template, which is used to create Docker containers. You can reuse existing images, or build new as you require them
Docker registry (a store component) hold images in a public store (called the Docker Hub) or a private store
Docker container (a run component) holds application along with its dependencies/components/libraries, which are built from Docker images