可以实现非root用户操作docker,核心是将用户加入docker组并确保其对/var/run/docker.sock具有读写权限:先验证或创建docker组,再用sudo usermod -ag docker $user添加用户,执行newgrp docker刷新会话,最后通过docker run --rm hello-world验证权限。

直接在 Linux 系统上配置 Docker 的非 root 用户组权限,核心就是把普通用户加入 docker 用户组,并确保该组对 Docker 套接字有访问权。这不是 Docker 内部的“配置文件修改”,而是系统级的用户与组权限设置。
创建并确认 docker 用户组
Docker 安装后通常会自动创建 docker 组,但需验证是否存在:
- 运行
getent group docker—— 若有输出,说明组已存在; - 若无输出,手动创建:
sudo groupadd docker。
将当前用户加入 docker 组
执行命令将你的用户名(如 $USER)加入该组:
-
sudo usermod -aG docker $USER; - 注意
-aG是关键:-a表示追加,避免覆盖已有组;-G指定附加组。
使组权限立即生效
组成员变更不会自动在当前终端生效,需刷新会话:
- 推荐方式:
newgrp docker—— 切换当前 shell 的主组为 docker,无需登出; - 或完全退出终端、重新登录(图形界面下可能需重启会话)。
验证权限是否生效
运行基础命令测试,不报 Permission denied 即成功:
-
docker run --rm hello-world; - 也可检查套接字权限:
ls -l /var/run/docker.sock,应显示属组为docker,且组权限含rw-(如srw-rw----)。











