我在Docker Container中运行了一个Node.js应用程序。
我需要从我的Node.js应用程序中启动一个新容器(通过代码;例如child_process.spawn()
),其唯一目的是运行Python脚本。我还需要将一个参数(数据库记录ID)传递给此Python脚本。所以命令是:
python main.py 56fb661b7e51f80736d48113
请注意,我不希望此容器在当前容器内运行,而是要成为一个单独的容器。
我知道像Swarm或Kubernates这样的编排框架更适合这项任务,但是我已经要求在我的开发环境中在我的机器上本地使用Docker Compose,然后我们将在生产中使用Kubernates。 / p>
是否可以使用Docker Compose从正在运行的Docker容器中启动新的Docker容器(只是一个容器,而不是一个全新的机器/ VM),如果是这样,我该怎么做呢?
答案 0 :(得分:1)
我自己并没有这样做,但是如果你在你的子容器上安装了docker,我会收集它,如果你在孩子的主机上使用了docker socket,你可以与它进行交互。即。
--volume=/var/run/docker.sock:/tmp/docker.sock
您需要将孩子的docker进程配置为指向该套接字(可能是DOCKER_HOST envvar应该有效吗?)但这是基本的想法。针对该套接字运行docker命令应该在主机上运行。
https://github.com/gliderlabs/registrator使用此方法可能会为您提供一些指示。
显然,这种使用docker的方法会产生许多问题,但如果它最适合你的情况那么就去做吧。