You run docker run hello-word and you get permission denied while trying to connect to the Docker daemon socket … How to fix this ?

You run docker run hello-word and you get: Got permission denied while trying to connect to the Docker daemon socket How to fix this ?

Did you forget sudo ?

Check if you do not forget sudo

mathlinux@osboxes:~$ sudo docker run hello-word

Does your user belong to docker group ?

Add docker group if it does not exist:

mathlinux@osboxes:~$ sudo groupadd docker

Check it:

mathlinux@osboxes:~$ getent group docker
docker:x:141:

Here, user mathlinux is not on docker group. Add it like follows and restart docker engine:

mathlinux@osboxes:~$ sudo usermod -aG docker ${USER}
mathlinux@osboxes:~$ getent group docker
docker:x:141:mathlinux
mathlinux@osboxes:~$ sudo systemctl restart docker

Since you add this user to docker group, you do not need to use sudo:

mathlinux@osboxes:~$ docker run hello-word

Is it enough ?

The Docker daemon can listen for Docker Engine API requests via three different types of Socket: unix, tcp, and fd.

By default, a unix domain socket (or IPC socket) is created at /var/run/docker.sock, requiring either root permission, or docker group membership. So try to check that docker group is allowed to read/write:

mathlinux@osboxes:~$ ls -al /var/run/docker.sock 
srw-rw---- 1 root docker 0 Oct 12 12:35 /var/run/docker.sock

It it is not:

mathlinux@osboxes:~$ sudo systemctl stop docker
mathlinux@osboxes:~$ sudo chown root:docker /var/run/docker.sock
mathlinux@osboxes:~$ sudo chown chmod 660
mathlinux@osboxes:~$ ls -al /var/run/docker.sock 
srw-rw---- 1 root docker 0 Oct 12 12:38 /var/run/docker.sock
mathlinux@osboxes:~$ sudo systemctl start docker
mathlinux@osboxes:~$ docker run hello-word