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

问题描述 投票:1回答:2

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

什么可能出错?谢谢您的帮助!

docker ubuntu
2个回答
2
投票

显然问题是tmux shell。

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

解:

  1. 杀死tmux:

pkill -f tmux

  1. 打开tmux和测试docker:

docker run hello-world

现在它工作正常


1
投票

如果您在将用户添加到docker组之前最初使用sudo运行Docker CLI命令,则可能会出现此错误,您需要删除〜/ .docker /目录(它会自动重新创建,但任何自定义设置都会丢失)或更改使用以下命令的所有权和权限:

$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
$ sudo chmod g+rwx "/home/$USER/.docker" -R
© www.soinside.com 2019 - 2024. All rights reserved.