我试图在ubuntu 16.04上运行没有sudo的docker。我按照docker网站上的Linux安装后说明操作:
sudo groupadd docker
sudo usermod -aG docker $USER
我重新启动然后跑了
docker ps
此错误仍然出现:
在尝试连接到unix上的Docker守护程序套接字时获得权限被拒绝:///var/run/docker.sock:获取http://%2Fvar%2Frun%2Fdocker.sock/v1.37/containers/json:拨打unix /var/run/docker.sock:connect:权限被拒绝
奇怪的是,如果我从我的机器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)
什么可能出错?谢谢您的帮助!
显然问题是tmux shell。
将帐户添加到docker组时仍会出现问题,同时仍至少打开一个tmux会话。关闭所有tmux会话解决了问题[组帐户现在将在下一个会话中更新]。
解:
pkill -f tmux
docker run hello-world
现在它工作正常
如果您在将用户添加到docker组之前最初使用sudo运行Docker CLI命令,则可能会出现此错误,您需要删除〜/ .docker /目录(它会自动重新创建,但任何自定义设置都会丢失)或更改使用以下命令的所有权和权限:
$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
$ sudo chmod g+rwx "/home/$USER/.docker" -R