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

标签 linux docker

我有 Ubuntu 18.04。在安装 docker 之后,我使用命令将我的用户添加到 docker 组

sudo usermod -aG docker ${USER}

并登录

su - ${USER}

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

但是当我重新打开终端时,我不能在没有 sudo 的情况下执行 docker 命令,除非我明确地执行 su ${USER}

另外,我找不到默认用户的 docker 组。 我在这里错过了什么?

最佳答案

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

基本上,Docker 守护程序套接字由 root:docker 拥有,因此为了使用 Docker CLI 命令,您需要属于 docker 组,或通过 sudo 添加所有 docker 命令。

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

相反,您可能想要遵循第二种解决方案,可以通过在 ~/.bashrc 文件中添加一个别名来稍微简化,例如:

alias docker="sudo /usr/bin/docker"

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

关于linux - 默认用户未添加到 docker 组,必须执行 su $USER?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53373592/

相关文章:

linux - 使用端口的 IPC 方法必须使用网络套接字吗?

linux - 如何在 bash shell 脚本中添加另一个 "for"循环?

docker - 从从属镜像创建独立的docker镜像

linux - 如果否则用 rm Shell linux

c++ - 如何将工具链交叉编译到 ARMv5 平台?

linux - NASM,读取文件并打印内容

docker-compose up postgresql 错误,chown : changing ownership of ‘/var/lib/postgresql/data’ : Operation not permitted

angular - Dockerizing Angular 应用程序后路由不起作用

docker - SSH 代理从 Mac OS 转发到 Docker Alpine 容器

git - 在 Docker 容器中 pull 私有(private) git repo