Docker Architecture Explained

Vipul Kumar
2 min readNov 27, 2024

--

🖥️ Client-Server Model — Docker uses a client-server architecture where the Docker client communicates with the Docker daemon to manage containers.

🔧 Docker Daemon — The daemon is responsible for building, running, and managing Docker containers and images. It listens to API requests and processes them.

📦 Docker Client — This is the interface through which users interact with Docker. It can communicate with multiple daemons and uses commands like ‘docker build’, ‘docker pull’, and ‘docker run’.

🏠 Docker Host — The host is the environment where Docker runs, including the daemon, images, containers, networks, and storage.

📚 Docker Registry — This is where Docker images are stored. Docker Hub is a public registry, but private registries can also be set up.

Docker Components

🔧 Docker Engine — The core of Docker, facilitating container lifecycle management with components like the CLI, REST API, and daemon.

📦 Images — Read-only templates used to create containers, containing all necessary instructions and metadata.

📂 Containers — Encapsulated environments for running applications, created from images and configured with specific options.

🔗 Networks — Docker provides various networking options, including bridge, host, and overlay networks, to connect containers.

💾 Volumes — Used for persistent storage, allowing data to be shared between containers and the host.

Docker Networking

🌉 Bridge Network — The default network driver, allowing containers on the same host to communicate.

🏠 Host Network — Removes network isolation between the container and the host, useful for performance.

🕸️ Overlay Network — Enables communication between containers across different Docker hosts, often used in swarm services.

🚫 None Network — Disables all networking, providing complete isolation.

📡 Macvlan Network — Assigns a MAC address to containers, making them appear as physical devices on the network.

Docker Storage

💾 Data Volumes—Allow data to persist beyond the lifecycle of a container by mounting directly into the container’s filesystem.

📦 Volume Containers — Used to maintain data state across container restarts, stored on the host.

📁 Directory Mounts — Host directories can be mounted as volumes, providing direct access to host files.

🔌 Storage Plugins — Enable integration with external storage solutions like Amazon EBS, enhancing data management.

🗄️ Storage Drivers — Manage how images and containers are stored on the Docker host, which is crucial for performance and efficiency.

Read On LinkedIn or WhatsApp

Follow me on: LinkedIn | WhatsApp | Medium | Dev.to | Github

Originally published at https://dev.to on November 27, 2024.

--

--

Vipul Kumar
Vipul Kumar

Written by Vipul Kumar

A passionate software developer working on java, spring-boot and related technologies for more than 4 years.

No responses yet