默认用户未添加到docker组,必须执行su $ USER吗?

时间:2018-11-19 11:24:03

标签: linux docker

我有Ubuntu 18.04。在安装docker之后,我使用

命令将用户添加到docker组中
sudo usermod -aG docker ${USER}

并登录

su - ${USER}

,如果我检查id,我的用户将添加到docker组。

但是当我重新打开终端时,除非没有明确地执行su ${USER}

,否则我就不能在没有 sudo 的情况下执行docker命令。

另外,我找不到默认用户的码头工人组。 我在这里想念什么?

1 个答案:

答案 0 :(得分:1)

@larsks已在评论中回答了主要问题,但是我想详细说明此更改的含义(将默认用户添加到docker组)。

基本上,Docker守护进程套接字由root:docker拥有,因此,要使用Docker CLI命令,您需要位于docker组中,或在所有{{1}之前添加} docker命令。

documentation of Docker中所述,在您的个人工作站上遵循第一个解决方案是有风险的,因为这仅相当于向默认用户提供root权限,而没有类似sudo的密码提示保护。实际上,sudo组中的用户是主机上的 deacto 根。例如,请参见this articlethat one

相反,您可能想采用第二种解决方案,可以通过在docker文件中添加一个别名来简化该解决方案,例如:

~/.bashrc

因此,alias docker="sudo /usr/bin/docker" 将自动扩展为docker run --rm -it debian,从而为您的默认用户保留sudo /usr/bin/docker run --rm -it debian的保护。