Docker 命令 Got permission denied 解决
安装完 Docker 后,执行 docker 相关命令出现:
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/json: dial unix /var/run/docker.sock: connect: permission denied
原因:默认只有 root 用户和 docker 用户组的用户才能访问 Docker守护进程的 Unix socket。
解决方法一:使用 sudo
使用 sudo 获取管理员权限运行 docker 命令。
解决方法二:将当前用户加入 docker 用户组
docker 守护进程启动时,会默认赋予名为 docker 的用户组读写 Unix socket 的权限。因此只要创建 docker 用户组,并把当前用户加进去,该用户就有权限访问 Unix socket,可以正常执行 docker 命令:
1sudo groupadd docker # 添加 docker 用户组
2sudo gpasswd -a $USER docker # 将登录用户加入到 docker 用户组
3newgrp docker # 更新用户组(当前终端立即生效)
4docker ps # 测试 docker 命令是否可以正常使用
如果 newgrp 后仍无权限,注销重新登录即可永久生效。
