Search code examples
dockerdocker-compose

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?


Solution

  • 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. Log in to the new docker group (to avoid having to log out / log in again; but if not enough, try to reboot):
    $ 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