在tmux内部,没有sudo

时间:2018-08-09 11:46:27

标签: docker ubuntu

我正在尝试在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)

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

2 个答案:

答案 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会话即可解决此问题[现在将在下一个会话中更新组帐户]。

解决方案:

  1. 杀死tmux:
  

pkill -f tmux

  1. 打开tmux并测试docker:
  

docker运行hello-world

现在工作正常