非ROOT用户使用docker命令

Docker安装完之后,如果是以非ROOT用户登录的必须加sudo执行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/images/json: dial unix /var/run/docker.sock: connect: permission denied  

解决办法是把当前用户添加进docker用户组

查看docker用户组

使用cat /etc/passwd命令找到“Docker User”如下:

dockerroot:x:994:992:Docker User:/var/lib/docker:/sbin/nologin

可知,该用户所属组ID为992,再使用cat /etc/groups命令找到992对应的group

dockerroot:x:992:l

将当前用户加入docker用户组
$ sudo usermod -a -G dockerroot $USER
$ newgrp dockerroot
查看 docker.sock 权限设置

使用命令ll /var/run/docker.sock查看docker.sock 权限设置

srw-rw----. 1 root root 0 Oct 8 11:00 /var/run/docker.sock=

如果该文件用户组是root,则手动改成docker用户组,sudo chown root:dockerroot docker.sock

重启docker服务

最后,重启docker服务即可:

$ sudo systemctl restart docker