繁体   English   中英

无法将用户添加到 docker 组

[英]Can't add user to docker group

我正在尝试在新系统上设置 docker,当运行 docker 信息时,我得到:

docker -v
=> Docker version 18.09.5, build e8ff056

docker info
=> Got permission denied while trying to connect to the Docker daemon
   socket at unix:///var/run/docker.sock: Get
   http://%2Fvar%2Frun%2Fdocker.sock/v1.39/info: dial unix 
   /var/run/docker.sock: connect: permission denied

按照文档,我尝试过:

sudo usermod -a -G docker $USER

不返回 output。当我运行组时:

groups
=> mark adm cdrom sudo dip plugdev lpadmin sambashare

我可以看到一个 docker 组存在:

less /etc/group | grep docker
=> docker:x:131:mark

并且可以看到它拥有一个运行在错误消息中的套接字:

ls -la /var/run/ | grep docker
=> 
drwx------  5 root                root                 120 May 25 14:54 docker
-rw-r--r--  1 root                root                   5 May 25 14:54 docker.pid
srw-rw----  1 root                docker                 0 May 25 14:54 docker.sock

那么,为什么我不能使用sudo usermod -a -G docker $USER将自己添加到该组?

您需要重新加载 shell 以使更改生效。 通常,您需要重新启动 shell 进程,甚至可能需要重新启动计算机。

例如

sudo usermod -aG docker $USER
sudo reboot

请参阅@4Z4T4R 答案并大拇指https://stackoverflow.com/a/66297855/7961500

在不退出 shell 的情况下加载更改

为了避免启动一个新的 shell,你可以运行。 (似乎不适用于所有环境)

exec su -l $USER

这将使用加载的更改创建一个新的子 shell,并用它替换您当前的 shell。

如果没有其他方法适合您。

如果您现在只需要让它工作,另一种方法是更改​​您的主要组。 这只是一个临时解决方案,对于任何新外壳,您都需要再次应用它。

export my_group=$(id -gn)
newgrp docker
newgrp $my_group

文档

您还可以在此处查看官方文档https://docs.docker.com/engine/install/linux-postinstall/

就我而言,在 Ubuntu 20.04 上,在此命令后运行sudo reboot

$ sudo usermod -aG docker $USER

我确实需要重新启动我的操作系统(和机器)才能使更改生效。 重新启动/重新加载 bash 会话未应用新设置。

当然, newgrp docker做“对飞”不重新启动/重新启动/重新什么把戏......但一旦会话终止,你的不是docker组下去了。

将此添加为正式答案,因为它真正解决了 OP 和我的(相同)问题。

应该归功于@Omari Celestine 的建议,但因为我的解释很烂,我(也许你)需要这个答案提供的字面消歧。

从技术上讲,这是一个两步过程。 跑步

sudo usermod -aG docker $USER

然后,

sg docker -c "bash"

更改 /var/run/docker.sock 文件的权限并重启 docker 进程。

sudo chown jenkins:jenkins /var/run/docker.sock
sudo 644 /var/run/docker.sock

然后,

sudo service docker restart

在运行 $docker info 之前,请确保 docker 服务已启动。

如果不是,请通过运行以下命令来启动服务。

$service 码头工人开始

现在你检查 $docker 信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM