【发布时间】:2016-07-09 08:15:56
【问题描述】:
我有以下 Dockerfile:
FROM docker
RUN addgroup docker && \
adduser -DH demo && \
addgroup demo docker
CMD /bin/sh
在这张图片中,我正在创建一个名为 demo 的用户,然后将其添加到一个名为 docker 的组中。这几乎就是如何设置完整的环境,以便非 root/非 sudo 用户可以发出 docker 命令。但是,它对我不起作用。我错过了什么?我尝试将用户和组(通过用户和组 ID)映射到主机系统上的用户,但它仍然不起作用。我在 Docker for Mac Beta (1.12.0-rc3-beta18) 中运行它。
【问题讨论】:
-
你错过了很多。如果您想以用户身份在容器中运行应用程序,请使用: USER myuser 但听起来您希望在 docker 中有一个用户,存在于主机上的组中,并管理主机 docker。如果你想让一个 docker 容器能够控制宿主 docker 实例……你需要使用 docker API。
-
@Psycho Punch 想在这里详细说明您的用例吗?主机系统不会知道容器内的用户。据我所知,容器与主机是隔离的。即
container.root != host.root用户。如果我错了,请纠正我。 -
@SamuelToh 这是一个实验的一部分,希望能够在 Docker 容器内建立一个持续集成环境,但能够创建同级容器。我并不是真的想映射主机用户;这只是一个探索性的步骤。
-
@user2105103 就像我之前说的,我不打算将主机用户映射到容器用户。但是,我希望容器能够管理主机的部分是正确的。
-
@PsychoPunch 我明白你的意思了。不幸的是,我没有在另一个容器中嵌套容器的经验。我尝试使用像
nested container docker这样的关键词在谷歌上搜索你,结果前几页通常是“这是一个不好的做法”。见链接。 jpetazzo.github.io/2015/09/03/… 可能值得研究
标签: docker