我可以使用特权 Docker 容器在主机上生成其他容器吗?
Can I use privileged Docker container to spawn other containers on host?
我有一个项目,每个主机包含几十个容器。到目前为止,我一直在使用 SSH/Ansible 在 bootstrap 上的虚拟机上生成容器,但现在我希望每个主机上的守护进程 运行 仅在需要时启动容器。
为了更好地管理依赖关系,如果我可以将我的守护进程 运行 本身放在一个特权容器中(安全不是问题),我会很高兴,与主机 Docker 守护进程通信以运行 个新容器(请参阅以下架构)。这是否可能以一种非 hacky 的方式,或者 Docker 是否完全禁止容器与其底层 Docker 守护进程交互?
如果这不可能,您能否告诉我您首选的以编程方式启动 docker 容器的方式?提前致谢:)
我使用特权容器的次数不多,但我认为您的提议会奏效。然而,另一种流行的解决方案是将 docker 套接字安装到容器中。这将实现您想要做的事情。
docker run -v /var/run/docker.sock:/var/run/docker.sock <image> <cmd>
不推荐,从这个简单的 google search 中反对它的建议的数量可以看出。但既然你不担心安全问题,你可能就没事了。
我有一个项目,每个主机包含几十个容器。到目前为止,我一直在使用 SSH/Ansible 在 bootstrap 上的虚拟机上生成容器,但现在我希望每个主机上的守护进程 运行 仅在需要时启动容器。
为了更好地管理依赖关系,如果我可以将我的守护进程 运行 本身放在一个特权容器中(安全不是问题),我会很高兴,与主机 Docker 守护进程通信以运行 个新容器(请参阅以下架构)。这是否可能以一种非 hacky 的方式,或者 Docker 是否完全禁止容器与其底层 Docker 守护进程交互?
如果这不可能,您能否告诉我您首选的以编程方式启动 docker 容器的方式?提前致谢:)
我使用特权容器的次数不多,但我认为您的提议会奏效。然而,另一种流行的解决方案是将 docker 套接字安装到容器中。这将实现您想要做的事情。
docker run -v /var/run/docker.sock:/var/run/docker.sock <image> <cmd>
不推荐,从这个简单的 google search 中反对它的建议的数量可以看出。但既然你不担心安全问题,你可能就没事了。