<p>Docker 默认需 root 权限,因 /var/run/docker.sock 权限为 660 且属 root:docker 组;解决方法是将用户加入 docker 组:验证或创建该组,执行 sudo usermod -aG docker $USER,再用 newgrp docker 或 exec sg docker -- bash 激活权限,最后通过 groups 和 docker run hello-world 验证成功。</p>

Docker 默认要求 root 权限才能运行,因为它的守护进程(dockerd)通过 Unix 套接字 /var/run/docker.sock 与客户端通信,而该套接字权限为 660,归属 root:docker。所以关键不是绕过权限,而是让普通用户合法获得访问资格——方法就是加入 docker 用户组。
确认 Docker 已安装并运行
执行以下命令检查基础状态:
-
docker --version—— 看是否输出版本号(如Docker version 24.0.7) -
sudo systemctl status docker—— 确保服务状态为active (running)
创建 docker 组并添加当前用户
大多数安装方式会自动创建 docker 组,但需验证并确保用户在其中:
- 检查组是否存在:
getent group docker或grep docker /etc/group - 若不存在,手动创建:
sudo groupadd docker - 将当前用户加入组:
sudo usermod -aG docker $USER
立即激活新组权限(无需重启或登出)
组变更不会自动生效于当前终端会话。运行以下命令即可即时启用:
-
newgrp docker—— 切换到 docker 组上下文(部分系统需装util-linux-extra) - 或更通用的方式:
exec sg docker -- bash
之后在同一终端中执行 docker ps 应无报错。
验证配置是否成功
完成上述步骤后,用非特权命令测试:
-
groups—— 输出中应含docker -
docker run hello-world—— 成功拉取并运行镜像,且不提示permission denied
如果看到 “Hello from Docker!”,说明权限配置已就绪。


















