2014-10-16 54 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腳本中,你可以做任何你喜歡的事情。