gpt4 book ai didi

docker - 如何在Docker中以非root用户身份在Docker中运行Docker命令?

转载 作者:行者123 更新时间:2023-12-02 20:21:18 25 4
gpt4 key购买 nike

我有以下Dockerfile:

FROM docker

RUN addgroup docker && \
adduser -DH demo && \
addgroup demo docker

CMD /bin/sh

在此图中,我正在创建一个名为demo的用户,然后将其添加到一个名为docker的组中。这几乎是完整环境的设置方式,以便非root / non-sudo用户可以发出docker命令。但是,它对我不起作用。我想念什么?我尝试将用户和组(通过用户和组ID)映射到主机系统上的用户,但是仍然无法正常工作。我正在Docker for Mac Beta(1.12.0-rc3-beta18)中运行它。

最佳答案

这是问题注释的扩展。

因此,OP的用例是通过使用docker within docker体系结构研究连续集成环境,或者根据需要使用方法。

从docker的nested containers官方博客发布中,可以做到的,正如嵌套容器概念的先驱jpetazzo进一步解释的那样。要使该体系结构正常工作,可能需要大量的黑客工作,因为嵌套体系结构并不完美,主要是由于以下缺点:

示例:

1-安全配置文件

When starting a container, the “inner Docker” might try to apply security profiles that will conflict or confuse the “outer Docker.”



2-储存

The second issue is linked to storage drivers. When you run Docker in Docker, the outer Docker runs on top of a normal filesystem (EXT4, BTRFS, what have you) but the inner Docker runs on top of a copy-on-write system (AUFS, BTRFS, Device Mapper, etc., depending on what the outer Docker is setup to use). There are many combinations that won’t work. 2 3 - Difficult to reuse images in child containers

And what about the build cache? That one can get pretty tricky too. People often ask me, “I’m running Docker-in-Docker; how can I use the images located on my host, rather than pulling everything again in my inner Docker?”



问)可能解决此问题吗?

答:我想OP之所以尝试使用嵌套容器架构的原因是,他可以使用容器(以某种形式的root身份),然后通过docker命令编排其子容器?

如果是这样的话,那么仍然可以通过标准的非嵌套方式来实现。也就是说,您无需将docker命令向下发送,而是将其发送回主机实例,然后让主机实例为您执行根容器的命令。例;使用docker REST api从容器发送docker命令。

关于docker - 如何在Docker中以非root用户身份在Docker中运行Docker命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38275331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com