2014-07-16 42 views
1

比方說,我有一臺運行Docker的主機和Vagrant Virtualbox。 如果我想運行在漂浮的碼頭工人,命令我可以做線沿線的東西:如何從運行在docker主機中的主機運行復雜的docker命令?

vagrant ssh -c "docker ps" 

如果我想從流浪漢刪除所有的容器,我將能夠運行:

docker rm $(docker ps -a -q) 

試圖從遊民外去除所有的容器,雖然有:

vagrant ssh -c "docker rm $(docker ps -a -q)" 

不工作。它試圖在主機上運行「docker ps -a -q」,而不是在Vagrant中運行。如果我改爲嘗試:

vagrant ssh -c "docker rm $(vagrant ssh -c \"docker ps -a -q\")" 

我稍微靠近了一點,但並不工作。我怎樣才能運行這樣的命令,而無需直接輸入流浪者或者運行shell腳本?

回答

4

嘗試在命令周圍使用單引號,這樣可以防止在您的shell可以在流浪盒上運行之前進行插值。

vagrant ssh -c 'docker rm $(docker ps -a -q)'

相關問題