我可以使用特权 Docker 容器在主机上生成其他容器吗?

Adr*_*xey 0 privileged-functions docker

我有一个项目,每个主机包含数十个容器。到目前为止,我一直在使用 SSH/Ansible 在引导程序上在虚拟机上生成容器,但现在我希望在每个主机上运行一个守护进程,以便仅在需要时启动容器。

为了更好的依赖管理,如果我能让我的守护进程在特权容器中运行(安全性不是问题),与主机 Docker 守护进程通信以运行新容器(请参阅以下架构),我会很高兴。这是否可以通过一种非 hacky 的方式实现,或者 Docker 是否完全禁止容器与其底层 Docker 守护进程交互?

在此输入图像描述

如果这是不可能的,您能告诉我您以编程方式启动 docker 容器的首选方法吗?提前致谢 :)

dat*_*arl 5

我没有太多使用特权容器,但我认为你提出的建议会起作用。然而,另一种流行的解决方案是将 Docker 套接字安装到容器上。这将实现您想要做的事情。

docker run -v /var/run/docker.sock:/var/run/docker.sock <image> <cmd>

不推荐它,因为您可以从这个简单的谷歌搜索中反对它的建议的数量中看到。但由于您不担心安全问题,因此可能没问题。