Docker Tip #20: Managing Docker without Sudo on Linux
Being able to access the Docker daemon as a non-root user is a quality of life enhancement. Here's how to do it on Linux.
By default when you install Docker on Linux, you can only access the Docker
daemon as the root
user, or by using sudo
. It’s really easy to forget to add
sudo
when running Docker commands and you really shouldn’t be logged in as
root
all the time on a Linux system.
Add a docker group and then add your user to it:
sudo groupadd docker
sudo usermod -aG docker $USER
If you’re on a Linux server you’ll want to log out and then log back in for the changes to take effect. If you’re using Linux on the desktop, log out of your desktop session and then log back in.
I personally do this on my own Linux development box and my production servers.
This works because the Docker daemon binds to a Unix socket which is owned by
the root
user. With the above change, it makes the socket accessible by whatever
user you happen to be logged in as (that’s what $USER
refers to).
If you want to read up on the security implications of doing this then check out Docker’s documentation related to attack surface.