2017-04-07 28 views
0

我試圖命令的結果傳遞給另一個命令的golang模板:如何將命令的結果傳遞給docker檢查格式(Golang模板)?

CONTAINER_ID = $(泊塢窗PS -aqf 「NAME = CONTAINER_NAME」)

泊塢窗網絡檢查--format ='{{range $ i,$ container:= .Containers}} {{if eq $ container.Name(print'gateway_'$ container_id)}} {{$ container.IPv4Address}} { {end}} {{end}}'network

的目的是爲了獲得在特定的網絡接口的容器的IP地址,不可用簡單的

搬運工檢查CONTAINER_ID

感謝您的任何幫助。

+1

要傳遞一個變量,您需要使用雙引號,然後轉義所有特殊字符,特別是您不希望由shell擴展的'$'。 – BMitch

回答

1

您需要使用"並轉義golang模板使用的所有其他$。下面的命令將在接口bridge打印IPv4地址由容器名稱:

$> export CONTAINER_NAME=backstabbing_feynman 
$> docker network inspect --format="{{range \$id, \$container := .Containers}} {{if eq \$container.Name \"$CONTAINER_NAME\"}} {{\$id}} -> {{\$container.IPv4Address}} {{end}}{{end}}" bridge 
3a77b8fe2d14fb527a8c634fdaa46121672daf827c7fad0aabad1de37877e03e -> 192.168.0.4/20 

使用container_id將是similiar。

相關問題