普通用户获得docker权限
为了让当前用户在不使用 sudo
的情况下操作 Docker
,你需要将用户加入 Docker
用户组。以下是具体步骤:
- 检查是否已经存在
docker
组
执行以下命令,检查系统中是否有一个名为 docker
的组:
1 | grep docker /etc/group |
如果存在,输出类似以下内容:
1 | docker:x:999: |
如果没有存在,可以使用以下命令创建 Docker
组:
1 | sudo groupadd docker |
- 将当前用户添加到
docker
组
运行以下命令将当前用户加入 Docker
组(假设当前用户名为 $USER):
1 | sudo usermod -aG docker $USER |
- 应用组更改
为了使组的更改生效,你需要重新登录或者启动一个新的会话。例如:
1 | newgrp docker |
或者完全注销并重新登录。
- 验证是否生效
重新登录后,检查是否可以在不使用 sudo
的情况下操作 Docker
。运行以下命令:
1 | docker run hello-world |
如果显示正常运行的输出,表示设置成功。
- 确保 Docker 服务正常运行
确保 Docker 服务正在运行。你可以使用以下命令检查 Docker 服务的状态:
1 | sudo systemctl status docker |
如果未运行,可以启动:
1 | sudo systemctl start docker |
通过以上步骤,当前用户即可在不使用 sudo
的情况下操作 Docker
。如果仍然遇到权限问题,可以检查以下几点:
- 确保
docker
组的GID
和Docker
Daemon 的GID
是一致的。 - 确保
Docker
套接字文件(默认路径/var/run/docker.sock
)的权限允许docker
组访问。
验证:
1 | ls -l /var/run/docker.sock |
输出应类似以下内容:
1 | srw-rw---- 1 root docker 0 Nov 26 10:00 /var/run/docker.sock |
docker
组成员需要拥有读写权限。如果有问题,可以用以下命令修改:
1 | sudo chown root:docker /var/run/docker.sock |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 南岩 のBlog!