多种方法解决docker无权限问题 varrundocker.sock connect permission denied

问题:无权限使用docker命令

  1. 报错信息

    [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
    
  2. 如果着急可跳过中间分析过程,直接看总结命令可解决。

分析

  1. 根据报错信息(/var/run/docker.sock: connect: permission denied),可知,用户无操作权限
  2. 我们首先需要查看/var/run/docker.sock权限
    1. 情况一:只有root用户和docker组才有rw权限

      $ ll /var/run/docker.sock
      srw-rw---- 1 root docker 0 Mar 21 10:59 /var/run/docker.sock
      
    2. 情况二:只有root用户和root组才有rw权限

      $ ll /var/run/docker.sock
      srw-rw---- 1 root root 0 Mar 21 10:59 /var/run/docker.sock
      

解决

  1. 知道原因后,答案也就呼之欲出了:
    1. 方案一:使用sudo权限

      sudo docker ps
      
    2. 方案二:将当前用户(笔者测试机器用户是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用户组
      

总结

  1. 问题出在用户为访问/var/run/docker.sock的权限,只需给用户增加权限即可

  2. 操作命令

    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用户组
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值