【Docker】Docker 命令如何做到“不用 sudo”
·
Docker 命令如何做到“不用 sudo”
现象
直接运行 docker ps 报错类似:
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
原因是 Docker 守护进程的 socket 默认是:
- 属主:
root - 属组:
docker - 权限:
660
也就是只有 root 或 docker 组成员才能访问。
解决方法
把当前用户加入 docker 组,然后让组权限在当前 shell 生效(或重新登录):
sudo groupadd docker 2>/dev/null || true
sudo usermod -aG docker chaobo
newgrp docker # 让当前 shell 立刻生效(更稳的是重新登录)
验证:
docker ps
注意事项
- 加入
docker组基本等价于获得较高权限(可以通过容器间接访问宿主机文件/设备),在生产环境要按安全规范评估。 - 如果仍然不生效,优先检查 socket 权限/属组:
ls -l /var/run/docker.sock
典型应为:srw-rw---- root docker ... /var/run/docker.sock
更多推荐
所有评论(0)