问题描述:
安装docker后使用非root账户不使用sudo执行docker ps报以下错误:
$ 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
解决方法:
查看报无权限的/var/run/docker.sock文件属性:
$ ll /var/run/docker.sock
srw-rw---- 1 root docker 0 Jun 12 17:17 /var/run/docker.sock=
看到所属组docker有权限,给当前执行用户添加docker用户组
$ sudo usermod -a -G docker tianlang
其中tianlang为当前执行用户名
再次执行docker ps仍然报错.使用groups检查用户组是否添加成功
$ groups
tianlang adm sudo lpadmin
$ groups tianlang
tianlang : tianlang adm sudo lpadmin docker
可以看到使用groups tianlang能看到新添加的docker用户组,直接使用groups却看不到。
看来是新增的用户组信息在当前登陆环境还没生效,需要重新登陆下。可以重启电脑解决,
也可以先执行su - tianlang 然后再执行docker ps就有权限了
$ su tianlang
Password:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES