2014-10-16 83 views
2

我想创建一个使用docker-py在Docker容器内运行多个命令的过程。 阅读该文档,我发现,创造这样的container..something时,我可以使用命令选项:使用docker-py在同一个容器上运行多个命令

c.create_container(image="myimage", command="mycommand") 

是否有一种方式来运行刚刚创建的容器上的其它命令?

谢谢!

回答

0

使用docker-py或不是容器只能启动一个进程。然而,这个过程可以是一个脚本或一个产生多个其他进程的程序。

看看how to supervisor with Docker上的Docker文章,在容器中运行多个进程。

0

我不认为这是可能的使用docker py,但有几种方法可以做到这一点,这取决于你想运行哪个命令。

一种可能性是将command1 && command2设置为命令参数,但第二个将仅在第一个完成时启动(因此,如果它永远不会持续,第二个命令永远不会启动...)。另一种选择是运行在容器在bash,然后通过语法在其上运行的命令:从主机的命令行

echo your_command | docker attach container_id 

+0

请参阅docker-exechttps://docs.docker.com/reference/commandline/cli/#exec – 2014-10-18 20:16:01

1

截至码头v1.3。可以使用docker-exec命令将新进程注入正在运行的容器(请参阅https://docs.docker.com/reference/commandline/cli/#exec)。

但是,您应该考虑运行多进程容器的缺点,即“如果担心会分离”(在许多文章中进行了讨论)。

0

你可以通过使用命令参数而不是字符串的列表来实现。此外,您需要使用sh -c以执行命令:

c.create_container(image="myimage", command=['sh','-c','ls | wc && date']) 

你还是只运行一个命令(壳),但您提供一个shell脚本经由-c shell参数字符串参数。在这个shell脚本中,你可以做任何你喜欢的事情。