DEV Community

Vipul Kumar
Vipul Kumar

Posted on

Docker Architecture Explained

πŸ–₯️ 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 for 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, mounted 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

Top comments (0)