使用docker-py在同一个容器上运行多个命令

我想创build一个使用docker-py在Docker容器中运行多个命令的过程。 阅读文档,我发现在创build容器时可以使用命令选项,如下所示:

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

有没有办法在刚创build的容器上运行其他命令?

谢谢!

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

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

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

看看Docker的文章, 了解如何使用Docker来在容器中运行多个进程。

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

一个可能性是将command1 && command2设置为命令参数,但是第二个命令只有在第一个命令完成时才会启动(所以如果永远不会,第二个命令将永远不会启动…)。 另一个select是在容器中运行bash,然后通过语法在其上运行命令:

 echo your_command | docker attach container_id 

从主机的命令行。

你可以通过使用命令参数列表来代替string。 另外你需要使用sh -c来执行你的命令:

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

您仍然只运行一个命令(shell),但是通过-c shell参数提供一个shell脚本作为string参数。 在这个shell脚本中,你可以做任何你喜欢的事情。