2015-08-28 18 views
1

因此,從文檔,我可以查詢我的容器,其體積:Docker - 如何檢查容器路徑的容器?

docker inspect --format="{{.Volumes}}" container 

這將返回格式的路徑:

map[/container/path/1:/host/path/1 /container/path/2:/host/path/2] 

我的問題是,你如何提取單個輸出路徑的這個返回的數據?假設我只想要/host/path/2,所以我可以在腳本中使用它來備份該卷中的數據。

回答

2

--format的參數是標準go text/template表達式。如果你想製作的主機列表

$ docker inspect -f '{{index .Volumes "/container/path/1"}}' container 
/host/path/1 

:如果你想獲得對應於特定容器路徑主機的路徑,你可以這樣做容器對,你可以這樣做:

$ docker inspect -f '{{range $key, $value := .Volumes}}{{printf "%s:%s\n" $key $value}}{{end}}' 

這將讓你:

/container/path/1:/host/path/1 
/container/path/2:/host/path/2 

在這個例子中,我們正在做這句法的優勢:

動作中的流水線可能會初始化一個變量,以捕獲 結果。初始化具有語法

$variable := pipeline 

其中$變量是變量的名稱。聲明 變量的操作不產生任何輸出。

如果「範圍」動作初始化一個變量,則該變量將設置爲迭代的連續元素 。另外,「範圍」可以聲明瞭兩個 變量,用逗號分隔:

range $index, $element := pipeline 

在這種情況下,$索引和$元件被設置爲 陣列/層號的連續值或映射鍵和元素, 分別。注意 如果只有一個變量,則分配該元素;這是 與Go範圍內的約定相反。

+0

非常有幫助的答案,謝謝一噸。 – Chockomonkey