在Linux上安装Docker后,如果当前登陆用户不是root(一般建议使用普通用户),运行docker命令会报错:

[ec2-user@ip ~]$ 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.39/containers/json: dial unix /var/run/docker.sock: connect: permission denied

如果希望以非root用户运行docker命令,需要将用户添加到docker用户组中。

在安装docker的时候,一般已经默认创建了docker用户组。可以先判断下docker用户组是否存在:

$ [ec2-user@ip ~]$ cat /etc/group | grep docker
docker:x:993:ec2-user

如果docker用户组不存在,先创建:

$ sudo groupadd docker

然后将当前用户添加到docker用户组:

[ec2-user@ip ~]$ sudo usermod -aG docker ${USER}

然后注销重登陆使用户组生效,或者使用以下命令直接登陆到docker组中:

[ec2-user@ip ~]$ newgrp docker

最后检查下,普通用户是否可以使用docker命令:

[ec2-user@ip ~]$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

参考: