总是 sudo docker ... 很烦?原因是当前用户不在 Docker 预期的用户组里。按下面的步骤操作,一次配置,之后就能直接运行 Docker。
为什么需要 docker 组
- Docker 守护进程运行在 root 权限,出于安全默认只允许 docker 组的用户访问 Unix socket。
- 如果用户不在 docker 组,就会提示权限不足,只能临时用
sudo。
配置步骤
- 确认 docker 组存在(大多数发行版安装 Docker 时会自动创建):
sudo groupadd docker
已有同名组会提示已存在,忽略即可。
- 将当前用户加入 docker 组:
sudo usermod -aG docker $USER
- 刷新组信息(无需重启):
newgrp docker
如果想更彻底,可重新登录或重启终端/桌面会话。
验证
docker run hello-world
能正常拉取并输出欢迎信息,说明已生效。
常见问题与提示
- 权限仍不足:确认当前终端已重新登录或执行过
newgrp docker,并用id检查 docker 组是否列出。 - 安全注意:把用户加入 docker 组等同授予 root 权限,请仅在可信环境操作;服务器上要限制登录账户。
- WSL/云主机:WSL 需开启 systemd 或使用官方 Docker Desktop;云主机要记得开放所需镜像仓库访问并做好防火墙配置。
按上述步骤设置后,日常直接运行 docker ... 即可,无需再加 sudo。