docker - 在 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)
出了什么问题?谢谢您的帮助!
解决方案
显然问题出在 tmux shell 上。
将帐户添加到 docker 组时会出现此问题,同时仍至少打开一个 tmux 会话。关闭所有 tmux 会话可以解决问题 [组帐户现在将在下一个会话中更新]。
解决方案:
- 杀死 tmux:
pkill -f tmux
- 打开 tmux 并测试 docker:
码头工人运行你好世界
现在它工作正常
推荐阅读
- sql - SQL 连接和将 1 列引入 2 列
- r - R中的热图失败
- r - 在 R 中:我可以将行号 =1 的数据框(例如 x)分配为另一个数据框(例如 y)的列标题吗?
- vb.net - 有人可以帮我理解 Visual Basic 中的数据表计算功能吗?
- firebase - 如何在 Flutter 中加入来自两个 Firestore 集合的数据?
- javascript - Firebase 在 for 循环中添加
- angular - Angular 9 按日期对项目进行分组
- casting - Python中的数据类型转换和映射对象错误,TypeError: a bytes-like object is required, not 'map'
- powershell - 如何修复此 Powershell FTP 上传错误
- java - Apache POI 管理散点图