非root用户免sudo使用docker命令

2,306 阅读1分钟

背景

系统:Centos7.0 非root用户使用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.26/containers/json: dial unix /var/run/docker.sock: connect: permission denied

如何才能让普通用户正常使用docker相关命令?既然碰到这个问题就有了以下的解决问题的方案。

  • 如果linux环境没有用户组docker就添加一个:sudo groupadd docker
  • 将用户加入该用户组docker内。然后推出并重新登录就生效:useradd -G docker -c "user1" user1
  • 重启docker服务:systemctl restart docker
  • 切换当前会话到新 group:newgrp - docker
注意:最后一步是必须的,否则因为 groups 命令获取到的是缓存的组信息,刚添加的组信息未能生效,所以 docker images 执行时同样有错。