Introduction
In the previous Docker Introduction - Docker Engine - Components article, we went through a basic introduction of Docker and its benefits over a Virtual Machine (VM). In this article, we will learn about Docker's actual architecture and its advantages.
Docker Architecture
Docker uses a client-server model which consists of Docker's client, Storage Components, Host. Registry/Hub and Network.

Docker Daemon
It's a listener for Docker API requests and Managing Docker objects such as images, volumes, Containers, and networks. It's a communication bridge to manage services.
Docker Client
Users can interact with the Docker using the Docker client. It provides Command-Line Interface(CLI) that allows a user to run, stop, and do appropriate action with command on Docker daemon.
Docker Host
It provides an environment where applications are run and executes. It also manages communication with another daemon to manages all the services. It comprises of the Images, Docker daemon, Networks, Storage, and Containers.
Docker Registry
Docker hub is a public registry that can be used by anyone. It's used to store Docker images.
Docker Objects
It's a collection of objects which are used to assemble your applications
-
Images
A binary read-only template for build the containers, it contains metadata that briefs on the container's capability and dependencies. A major use of Images to store and moving applications from one platform to another. Docker Hub is an open public registry that can be used by any user but you can customize the registry by creating your container image which can be sharable within an organization or teams. A major effect of Images are can be updated so efficiently so that in case of any Dockerfile is updated then you just need to rebuild the image, that effect or rebuilt on the specific layer which you have changed, that makes Images lightweight, fast, and small compared to other virtualization technologies.
- Containers
Containers are the capsule in which your application is being wrapped. It's a fully portable thing that allows users to port within a specific supportive environment. Pre-defined access to resources defined in images. Containers are isolated from other containers with their host machine. Containers are smaller than VMs, they can be spun up in a few seconds, and result in much better server density.
- Networks
Docker networking is used to communicate all isolated containers with each other. It uses Container Network Model (CNM) for networking. Docker mainly uses five network drivers:
- Host
- Overlay
- Bridge
- Macvlan
- None
- Docker Storage
You can store the data using a writable layer of a container that required a storage driver. As its non-persistent, it will automatically perish once a container is stopped. Volume and Bind Mounts are two options for the container to store files in the host machine which persistent of files even after docker stops running.
Docker's supported platforms:
Desktop

Join the conversation! Your thoughts help the community grow.