Docker - 运行 来自内部容器的容器

Docker - Run Container from Inside Container

我有两个申请:

目前,Flask 项目带有控制台脚本的副本,并在必要时运行使用subprocess对其进行复制。这在 Docker 容器中效果很好,但它们耦合得太紧了。在某些情况下,我想从命令行 运行 控制台脚本。

我想将这两个应用程序分离到不同的容器中。为了让它工作,F​​lask 应用程序需要能够在单独的容器(可以在不同的机器上)中启动控制台脚本。理想情况下,我不想 运行 Flask 容器内的控制台脚本容器,因此每个容器只有一个进程 运行s。另外,我需要能够传递控制台脚本命令行参数。


问:如何从容器内部生成一个带有短期任务的容器?


您可以只授予容器执行 docker 命令的权限。它要么需要直接访问 docker 套接字,要么需要各种 tcp 环境变量和文件(客户端证书等)。显然它还需要在容器上安装 docker client

可以在主机上执行docker命令的容器的简单示例:

docker run -v /var/run/docker.sock:/var/run/docker.sock your_image

请务必注意,这与容器中的 运行 docker 守护程序不同。为此,您需要一个像 jpetazzo/dind.

这样的解决方案