最常见原因是当前用户未加入docker用户组,导致无法访问/var/run/docker.sock套接字;应执行sudo usermod -ag docker $user和newgrp docker生效,再用docker run --rm hello-world验证。
linux 下执行 docker 命令提示“权限不足”,最常见原因是当前用户未加入 docker 用户组,导致无法访问 docker 守护进程的 unix 套接字(/var/run/docker.sock)。
确认是否为用户组权限问题
运行以下命令检查错误是否匹配:
docker run hello-world
若报错类似:Got permission denied while trying to connect to the Docker daemon socket...
则基本可确定是权限组缺失。
将当前用户加入 docker 组
在终端中依次执行:
sudo usermod -aG docker $USER-
newgrp docker(立即生效,无需重启;若该命令报错或无效,可改用重新登录终端或注销再登录)
注意:$USER 会自动展开为当前用户名,无需手动替换;命令区分大小写,复制粘贴即可。
验证权限是否生效
执行以下任一命令确认:
-
groups—— 查看输出中是否包含docker -
docker info | grep "Name:"—— 成功返回主机名即表示权限已通 -
docker run --rm hello-world—— 正常打印欢迎信息即安装与权限均无误
其他可能原因及补充处理
若加组后仍报权限错,需排查:
- Docker 服务未运行:
sudo systemctl start docker -
/var/run/docker.sock被异常占用或损坏:sudo rm -f /var/run/docker.sock,再重启服务:sudo systemctl restart docker - SELinux 启用且策略限制(CentOS/RHEL 常见):
sudo setenforce 0临时关闭测试;如确认是 SELinux 导致,可修改/etc/selinux/config中SELINUX=disabled并重启











