Docker is synonymous with containerization, yet it is just one of the many implementations of the Open Container Initiative (OCI). As the most widely embraced containerization platform, Docker has greatly streamlined the development and deployment of modern applications. At the core of Docker's operation is the Docker daemon, an underlying background service running on the host OS, responsible for executing all Docker tasks.
In this article, we will be covering understanding its key functions, Integration with other docker components, and some basic configuration
What is Docker's daemon?
At the very core of Docker's operation lies the Docker daemon. It is the service responsible for orchestrating container lifecycle management. It means that the docker daemon handles various tasks including container creation, execution, and monitoring. In a nutshell, it acts as a bridge between the Docker client and the Docker engine following Client-Server Architecture. Docker daemon executes commands issued by the client by translating them into actionable operations within the Docker environment.
Image showing Workings of Docker daemon
Docker Daemon Functions
- Container Management: This involves overseeing the creation, execution, and termination of containers. This actions are performed based on commands received from the Docker client.
- Networking and Storage: Docker daemon enables seamless integration with resources with the underlying Operating System. Docker Daemon provides containers with access to network ports, storage volumes, and other essential components.
- Push & Pull images from registry: When a requested image or container isn't already available locally, Docker daemon interacts with Docker Registry to fetch and deploy the requested resources.
- Host Operating System: Docker daemon utilizes host operating system resources to manage containers. It communicates with the kernel of the host operating system to execute container operations.
- Scalability and Flexibility: Docker daemons architecture allows seamless integration with third-party tools and extensions. This enables further customization of container environments.
Understanding Docker Architecture:
1. Client Server Architecture:
Under the hood, docker employs a client-server architecture. Here docker daemon acts as the server component. The Docker client could be the docker cli or the docker desktop application. The interaction between docker client and daemon happens via REST API calls. The docker client acts as a frontend through which user intracts and the docker daemon actually executes all the required commands.
2. Relation between Docker daemon and Docker Client:
When the user intreacts with docker client, eithre through the docker cli or through graphical desktop application, docker client sends the requried commands to the docker daemon. Upon recieving the required instruction the docker daemon actually executes them. The result of this operation (along with potential errors) is then displayed back to the user via docker client.
In a nutshell, Docker client acts as simple frontend while Docker daemon actually manages the resources. The interactions between docker daemon and the docker client ar done through a REST API which acts as a bridge between the client and the server.
3. Relation between Docker daemon and Docker Registery:
Docker Registry is a remote service that stores Docker images and other related information. The registry acts as a central hub through which docker images can be accessed by users. Users can also upload their own images to the registry. DockerHub is one of popular public registry, they can also be privately managed.
When the an image is requested, the docker daemon checks if it exists locally, if it does then starts a contianer using that particular image. If the requested image doesn't exist locally then the daemon makes a request to the registry to get the required image.
In a nutshell, the Docker daemon manages local resources including containers and images, while the Docker Registry acts as a repository for storing and distributing.
4. Relation between Docker daemon and Docker Engine:
Docker Engine is composed of both containerd and runc, which power Docker's interal containerization capabilities. Containerd is a high-level container runtime that interacts with Docker daemon to handle container management tasks. On the other hand, As the container runtime interface (CRI), Runc ensures consistent container execution managing the execution of the tasks.
Docker daemon under the Hood
Starting the Docker Daemon
On MacOS and Windows Operating systems, starting Docker Desktop will automatically launch the docker daemon. When you launch the docker desktop application you can see the following screen:

On Linux operating system, the docker deamon could be started using the following command:
$ sudo systemctl start docker
Note: Running this command requirs root privilages.
Stopping the Docker Daemon
On MacOS and Windows Operating Systems, similar to how Docker Desktop is used for starting, it can also be used to manually pause or quit it. Click on the respective icons on status bar (bottom left position) to confirm the action.

On Linux, if the process in running in the terminal you can use Cntrl+C to stop it or can alternatively use the following command:
$ sudo systemctl stop docker
Configure the Docker daemon
There are two main ways to configure the Docker daemon:
- Use a JSON configuration file.
- Using flags when starting dockerd.
Docker daemon directory
The Docker daemon stores data in a single folder. This folder/directory contains everything related to Docker. This directory will include all of containers, images, volumes, service definition, and secrets.
It can be accessed via
- Linux/macOS : /var/lib/docker
- Windows: C:\ProgramData\docker on Windows.
Effective debugging
Debugging can be enabled to look runtime activity, helping with troubleshooting. This can be achieved by setting the debug key to true.
- Linux: Edit daemon.json file located in /etc/docker/.
- Windows: Go to Preferences / Daemon / Advanced.
Similar Reads
What Is Docker Client ?
Docker is rapidly growing in popularity. It is an open platform based on OCI, Open Container Initiative. The containerization helps separate applications from the underlying infrastructure. Thus, enabling rapid software development and release. Docker Client is the frontend that enables users to int
10 min read
What is Docker?
Have you ever wondered about the reason for creating Docker Containers in the market? Before Docker, there was a big issue faced by most developers whenever they created any code that code was working on that developer computer, but when they try to run that particular code on the server, that code
12 min read
What is dockerfile.dev?
In this rapidly developing landscape of software development, it becomes challenging to ensure that the development environment remains consistent at each stage, from local development to testing and production. Docker is a lynchpin among containerization-based platforms bundling applications along
8 min read
What is Docker Cloud?
Docker is a software platform that provides some special kind of facilities, like a service provider that allows you to build, test, and deploy your application in centralized processing and quickly. So, the Docker Cloud is basically working as a service provider by Docker in which we can perform su
10 min read
What is Docker Build ?
Docker Build is one of the key features of Docker Engine, specifically designed to create container images. It plays an important role in the software development lifecycle by enabling developers to package applications and deploy them consistently across multiple environments. Docker Build isn't ju
12 min read
What Is Docker Compose Up?
Docker Compose is a powerful tool utilized for defining and running multi-container Docker applications. It improves on the most common way of managing complex applications composed of multiple interconnected services by allowing you to characterize their configuration in a single YAML file.With Doc
15 min read
What Is Docker rm Command ?
Unused Docker images can pile up over time and occupy considerable disk space. Removing these images efficiently helps recover storage and ensures your system remains clutter-free.This guide will walk you through the process of removing unnecessary Docker images from your system. But before diving i
12 min read
What is Docker PS Command ?
he "docker ps" command is used to list all the running containers in the docker host. With the help of some filters, you can get the output of all the containers in the docker with are running and that are stopped. it shows the list of active containers that includes details about each one, includin
5 min read
Docker Daemon is Not Running
The Docker daemon, also known as dockerd, is one of the heart-type components of the Docker engine designed to maintain Docker containers, images, networks, and volumes, when the Docker daemon is not working, users cannot start or interact with Docker containers. After all, those above are the ways
9 min read
What is Dockerfile?
The operating system (OS) libraries and dependencies required to run the application source code which is not reliant on the underlying operating system (OS) included in the Dockerfile, which is a standardized, executable component. Programmers may design, distribute, launch, run, upgrade, and manag
9 min read