Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to fix docker: Got permission denied issue

I installed Docker in my machine where I have Ubuntu OS.
When I run:

sudo docker run hello-world 

All is ok, but I want to hide the sudo command to make the command shorter.
If I write the command without sudo

docker run hello-world 

That displays the following:

docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.35/containers/create: dial unix /var/run/docker.sock: connect: permission denied. See 'docker run --help'. 

The same happens when I try to run:

docker-compose up 

How can I resolve this?

like image 697
Carlos Andres Avatar asked Feb 23 '18 22:02

Carlos Andres


People also ask

How do I fix Docker permission is denied?

If running elevated Docker commands does not fix the permission denied error, verify that your Docker Engine is running. Similar to running a docker command without the sudo command, a stopped Docker Engine triggers the permission denied error. How do you fix the error? By restarting your Docker engine.

How do I fix Docker got permission denied while trying to connect to the Docker daemon socket?

Fix 1: Run all the docker commands with sudo If you have sudo access on your system, you may run each docker command with sudo and you won't see this 'Got permission denied while trying to connect to the Docker daemon socket' anymore.

Does not have permissions to run Docker commands?

The error message tells you that your current user can't access the docker engine, because you're lacking permissions to access the unix socket to communicate with the engine. As a temporary solution, you can use sudo to run the failed command as root (e.g. sudo docker ps ).


Video Answer


1 Answers

If you want to run docker as non-root user then you need to add it to the docker group.

  1. Create the docker group if it does not exist
$ sudo groupadd docker 
  1. Add your user to the docker group.
$ sudo usermod -aG docker $USER 
  1. Run the following command or Logout and login again and run (that doesn't work you may need to reboot your machine first)
$ newgrp docker  
  1. Check if docker can be run without root
$ docker run hello-world 

Reboot if still got error

$ reboot 

Warning

The docker group grants privileges equivalent to the root user. For details on how this impacts security in your system, see Docker Daemon Attack Surface..

Taken from the docker official documentation: manage-docker-as-a-non-root-user

like image 98
mkb Avatar answered Sep 21 '22 01:09

mkb