Docker - 从内部容器

时间:2015-04-30 17:15:18

标签: python docker

我有两个应用程序:

  • 执行简短(ish)任务并退出
  • 的Python控制台脚本
  • Flask" frontend"通过传递命令行参数启动控制台应用程序

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

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

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

1 个答案:

答案 0 :(得分:5)

您可以让容器访问执行docker命令。它要么需要直接访问docker socket,要么需要各种tcp环境变量和文件(客户端证书等)。显然,它也需要在容器上安装docker client

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

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

重要的是要注意,这与在容器中运行docker守护程序不同。为此,您需要一个像jpetazzo/dind这样的解决方案。