非root普通用户执行docker命令

618 阅读1分钟

前言

部署公司docker环境后,要求后续的docker执行不能使用root用户。故整理了几种让非root用户执行docker命令的方式。

解决方案

将需要执行docker命令的普通用户推荐到docker用户组中即可

  1. 查看docker用户组是否已经存在, 如果不存在则创建docker用户组,如果存在则跳过此步骤

    # 查看`docker`用户组是否已经存在
    sudo cat /etc/group |grep docker
    
    # 如果不存在,则创建`docker`用户组
    sudo groupadd docker
    
  2. 查看docker.sock是否所属docker用户组, 如果docker.sock不为docker则变更为docker组,如果为docker组则跳过此步骤

    # 查看`docker.sock`是否所属`docker`用户组
    sudo ls -rlt /var/run/docker.sock
    
    # 如果不属于,则变更为docker组
    sudo chgrp docker /var/run/docker.sock
    
  3. 将需要执行docker命令的普通用户添加到docker用户组中

    sudo gpasswd -a ${USER} docker
    
    newgrp docker
    

验证结果

  1. 查看指定用户所属用户组

    groups ${USER}
    
  2. 登录指定用户,执行docker ps命令