是否有可能使用Docker Compose从正在运行的Docker容器中启动新的Docker容器?

我有一个在Docker容器中运行的Node.js应用程序。

我需要从Node.js应用程序(通过代码;例如child_process.spawn() )启动一个新的容器,其唯一目的是运行Python脚本。 我还需要传递一个参数(数据库loggingID)到这个Python脚本。 所以命令是:

 python main.py 56fb661b7e51f80736d48113 

请注意,我不希望此容器在当前容器中运行,而是要成为一个单独的容器。

我知道像Swarm或Kubernates这样的编排框架会更适合这个任务,但是我已经要求在我的开发环境中在本地机器上使用Docker Compose,然后我们将在生产环境中使用Kubernates。

是否有可能使用Docker Compose从正在运行的Docker容器中启动一个新的Docker容器(只是一个容器,而不是一个全新的机器/虚拟机),如果是这样的话,我该怎么做呢?

我自己并没有这样做,但是从我收集的内容来看,如果你的docker已经安装在你的子容器上了,那么你可以在你的子容器中使用dockersockets。 即

 --volume=/var/run/docker.sock:/tmp/docker.sock 

你需要configuration你的孩子的docker进程指向该套接字(大概是DOCKER_HOST envvar应该工作?),但这是基本的想法。 对该套接字运行docker命令应在主机上运行。

https://github.com/gliderlabs/registrator使用这个方法可能会帮助你一些指针。

很显然,这种使用docker的方法会产生很多问题,但是如果最适合你的情况,那就去做吧。