首页 文章

编辑:在tmux内部,如果没有sudo,docker命令将无法工作 - ubuntu 16.04

提问于
浏览
1

我试图在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:dial unix /var/run/docker.sock:connect:权限被拒绝

奇怪的是,如果我从我的机器ssh到自身命令正确执行 . 当我从tty运行命令时它也能正常工作 .

edit:

输出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 回答

  • 1

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

    $ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
    $ sudo chmod g+rwx "/home/$USER/.docker" -R
    
  • 0

    显然问题是tmux shell .

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

    解:

    • kill tmux:

    pkill -f tmux

    • 打开tmux并测试docker:

    docker run hello-world

    现在它工作正常

相关问题