问题:无权限使用docker命令
-
报错信息
[test@pri00 ~]$ docker ps 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.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied -
如果着急可跳过中间分析过程,直接看总结命令可解决。
分析
- 根据报错信息(/var/run/docker.sock: connect: permission denied),可知,用户无操作权限
- 我们首先需要查看/var/run/docker.sock权限
-
情况一:只有root用户和docker组才有rw权限
$ ll /var/run/docker.sock srw-rw---- 1 root docker 0 Mar 21 10:59 /var/run/docker.sock -
情况二:只有root用户和root组才有rw权限
$ ll /var/run/docker.sock srw-rw---- 1 root root 0 Mar 21 10:59 /var/run/docker.sock
-
解决
- 知道原因后,答案也就呼之欲出了:
-
方案一:使用sudo权限
sudo docker ps -
方案二:将当前用户(笔者测试机器用户是test)加入docker组(推荐)
sudo chown root:docker /var/run/docker.sock # 修改docker.sock权限为root:docker sudo groupadd docker # 添加docker用户组 sudo gpasswd -a $USER docker # 将当前用户添加至docker用户组 newgrp docker # 更新docker用户组
-
总结
-
问题出在用户为访问/var/run/docker.sock的权限,只需给用户增加权限即可
-
操作命令
sudo chown root:docker /var/run/docker.sock # 修改docker.sock权限为root:docker sudo groupadd docker # 添加docker用户组 sudo gpasswd -a $USER docker # 将当前用户添加至docker用户组 newgrp docker # 更新docker用户组
本文介绍了当遇到无法使用Docker命令的问题时,如何通过检查/var/run/docker.sock的权限并采取相应的解决方案来修复。提供了两种主要的方法:使用sudo权限或者将当前用户添加到docker组。
786

被折叠的 条评论
为什么被折叠?



