我正在尝试在ubuntu 16.04上运行不带sudo的docker。 我遵循了docker网站上的Linux安装后说明:
sudo groupadd docker
sudo usermod -aG docker $USER
我重新启动然后运行
docker ps
此错误仍然出现:
尝试连接Docker守护程序时拒绝获得权限 unix:///var/run/docker.sock上的套接字:获取 http://%2Fvar%2Frun%2Fdocker.sock/v1.37/containers/json:拨打Unix /var/run/docker.sock:连接:权限被拒绝
奇怪的是,如果我将ssh从我的机器切换到自身,则命令将正确执行。 当我从tty运行命令时,它也可以正常工作。
编辑:
ls -lah /var/run/docker.sock的输出:
srw-rw---- 1 root docker 0 Aug 9 11:22 /var/run/docker.sock
id的输出:
uid=1000(uname) gid=1000(uname) groups=1000(uname),4(adm),24(cdrom),27(sudo),29(audio),30(dip),46(plugdev),113(lpadmin),128(sambashare),999(docker)
可能出了什么问题? 谢谢您的帮助!
答案 0 :(得分:1)
如果最初在将用户添加到Docker组之前使用sudo运行Docker CLI命令,则可能会出现此错误,您需要删除〜/ .docker /目录(该目录会自动重新创建,但是所有自定义设置都会丢失) ,或使用以下命令更改其所有权和权限:
$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
$ sudo chmod g+rwx "/home/$USER/.docker" -R
答案 1 :(得分:1)
显然,问题出在tmux外壳上。
将帐户添加到docker组时,仍然至少打开一个tmux会话时,会发生问题。关闭所有tmux会话即可解决此问题[现在将在下一个会话中更新组帐户]。
解决方案:
pkill -f tmux
docker运行hello-world
现在工作正常