One of the most common errors Docker users encounter is:
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
This error usually appears when you try to run a Docker command without sudo
or the proper user permissions, and the Docker daemon refuses access to its socket.
In this blog post, you’ll learn what causes this issue and how to resolve it on Linux and other platforms.
🔍 What Does This Error Mean?
Docker communicates with the Docker daemon (dockerd
) through a Unix socket located at:
/var/run/docker.sock
If your user account doesn’t have permission to access this socket file, Docker CLI commands like docker ps
or docker run
will fail with a permission denied error.
🛠️ Solution: Add Your User to the docker
Group
By default, only users in the docker
group have permission to interact with the Docker daemon.
✅ Step-by-step fix:
- Check your user:
whoami
- Add user to the
docker
group:
sudo usermod -aG docker $USER
Replace
$USER
with your username if needed.
- Apply the group change:
You need to log out and log back in for the group change to take effect.
Alternatively, you can run:
newgrp docker
This refreshes your current shell session with the new group settings.
📄 Verify the Fix
Run:
docker ps
If it works without sudo
, the issue is resolved.
You can also confirm your group membership:
groups
Look for docker
in the output.
🧼 Quick Explanation: Why Not Always Use sudo
?
While using sudo docker
works temporarily, it’s not ideal because:
- It’s inconvenient to type
sudo
every time. - It can cause permission issues when mounting volumes from your user directory.
- It can break CI/CD tools and developer scripts that assume user-level access.
Adding your user to the Docker group is the safer, cleaner fix.
🔐 Important Security Note
The docker
group has root-level access to the system because the Docker daemon runs as root. Be cautious about adding users to this group—only trusted users should be allowed.
📝 Summary
🔑 Error:
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
✅ Fix:
sudo usermod -aG docker $USER
newgrp docker
Then log out and log back in.
💬 Conclusion
This Docker socket permission error is frustrating but easy to fix. By understanding how Docker daemon permissions work and configuring your user access properly, you can avoid unnecessary sudo
usage and ensure a smoother development workflow.