在tmux内部,没有sudo的docker命令将无法工作

una*_*ame 3 ubuntu docker

我正在尝试在ubuntu 16.04上运行没有sudo的docker。我按照Docker网站上的Linux安装后说明进行操作:

sudo groupadd docker
sudo usermod -aG docker $USER
Run Code Online (Sandbox Code Playgroud)

我重新启动然后跑了

docker ps
Run Code Online (Sandbox Code Playgroud)

该错误仍然出现:

尝试在unix:///var/run/docker.sock上连接到Docker守护程序套接字时获得的权限被拒绝:获取 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
Run Code Online (Sandbox Code Playgroud)

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)
Run Code Online (Sandbox Code Playgroud)

可能出了什么问题?谢谢您的帮助!

una*_*ame 8

所以显然问题出在tmux外壳上。

将帐户添加到Docker组时,同时至少打开一个tmux会话时,会发生问题。关闭所有tmux会话即可解决问题[现在将在下一个会话中更新组帐户]。

解:

  1. 杀死tmux:

pkill -f tmux

  1. 打开tmux并测试docker:

docker运行hello-world

现在工作正常