首页 > 解决方案 > 在 tmux 内部,如果没有 sudo,docker 命令将无法工作

问题描述

我正在尝试在 ubuntu 16.04 上运行没有 sudo 的 docker。我遵循了 docker 网站上的 Linux 安装后说明:

sudo groupadd docker
sudo usermod -aG docker $USER

我重新启动然后运行

docker ps

这个错误仍然出现:

尝试在 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

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)

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

标签: dockerubuntu

解决方案


显然问题出在 tmux shell 上。

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

解决方案:

  1. 杀死 tmux:

pkill -f tmux

  1. 打开 tmux 并测试 docker:

码头工人运行你好世界

现在它工作正常


推荐阅读