How to Fix Cannot Connect to the Docker Daemon at Unix:///var/run/docker.sock. is the Docker Daemon Running Error

Overview

Docker helps to package the application as well as its dependencies into one compact and lightweight unit called containers. Docker containers can be installed on any physical or virtual machine, or on the cloud.

We could encounter a variety of issues with Docker. Docker service in various environments.

In this video we’ll look at this Docker connect issue with the Docker daemon. This is a frequent error that novices encounter. We’ll look at the root of this problem and methods to fix the issue.

Understanding the Problem

Imagine a scenario where we attempt to execute an operation using Linux and it does not exist within the computer. We receive an error message stating that a Command not Found error message back.

The cause of this issue could be due to the command isn’t installed on the system or that it has been installed, but it isn’t configured properly.

  • We must first know first the Docker daemon ( dockerd). It is a program that handles all Docker objects, such as volumes, images, containers and many more.
  • A Third entity that is involved, Docker, Docker client, assists in passing the request from the user directly to the Docker service through the Docker daemon.

In certain situations there are times when the Docker client will not join the Docker daemon. The Docker will throw an error It is unable to connect to the Docker daemon in this case.

There are a variety of reasons that an Docker client is unable to communicate with Docker. There are a variety of reasons why a client cannot connect to Docker daemon. We will now look into the root of the issue and discuss possible solutions to fix this issue.

 



Due to Inactive Docker Service

The most frequent cause of this issue is that we attempt to access the Docker service however it has not initiated:

$ docker ps Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the Docker daemon running?

We will first verify for the state of the Docker service to determine if it’s running or not:

$ systemctl status docker docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) Active: inactive (dead) Docs: https://docs.docker.com

The output clearly indicates how Docker is not in use. Docker service is not in use.

We’ll now begin our Docker service. This should resolve the issue in the majority of cases.



Start Docker Using Service

In general, when we install Docker with the package manager it will create an Docker service. This makes it easier to administer the Docker.

Now, let’s start Docker with systemctl service command: systemctl service command:

$ systemctl start docker

It is possible to check whether Docker is running Docker by using this command

$ systemctl status docker docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2022-02-17 19:14:51 UTC; 1min 38s ago Docs: https://docs.docker.com Main PID: 1831 (dockerd) Tasks: 8 Memory: 126.5M CGroup: /system.slice/docker.service +-1831 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

This command displays the current status of the Docker service is in active (running).



Verify the Permissions of Docker Sockets

The Docker socket file, which is located at /var/run/docker.sock, should have appropriate permissions for the user running Docker commands to access it. You can confirm permissions by running this command

ls -l /var/run/docker.sock 

Its results will reveal it is the root file’s owner, and the group is named docker. If permissions aren’t accurate, you can modify them by using the command below:

sudo run chown root:docker /var/run/docker.sock


Add User to Docker Group

The user who is running Docker commands must have been added to the Docker group in order to be granted the appropriate access rights to Docker. Docker daemon. You can join the user in the docker group by using this command

sudo usermod -aG docker 

Replace the name with that of the user you wish to add to this docker group.



Log Out, then Return to the System

After you have added your user’s name to the group you might need to log out and then log back in to make the changes effective to the user’s rights.

Conclusion

In this blog post, we discussed how to fix the “Cannot connect to the Docker daemon at unix:/var/run/docker.sock” error message. Following these steps, you will be able to fix this error and be able to run Docker commands with no issues. If you are still having problems, you might want to look over for the Docker instructions or ask for advice from members of Docker’s community. Docker community.