如何将命令的结果传递给 docker 检查格式(Golang 模板)?
How to pass the result of a command to docker inspect format (Golang template)?
我正在尝试将一个命令的结果传递给另一个命令的 golang 模板:
container_id=$(docker ps -aqf "name=container_name")
docker network inspect --format='{{range $i,$container:= .Containers}} {{if eq $container.Name (print 'gateway_' $container_id)}} {{$container.IPv4Address}} {{end}} {{end}}' network
目的是在特定的网络接口中获取容器IP地址,这是简单的
无法获得的
docker inspect container_id
感谢您的帮助。
您需要使用 "
并转义 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
就差不多了
我正在尝试将一个命令的结果传递给另一个命令的 golang 模板:
container_id=$(docker ps -aqf "name=container_name")
docker network inspect --format='{{range $i,$container:= .Containers}} {{if eq $container.Name (print 'gateway_' $container_id)}} {{$container.IPv4Address}} {{end}} {{end}}' network
目的是在特定的网络接口中获取容器IP地址,这是简单的
无法获得的docker inspect container_id
感谢您的帮助。
您需要使用 "
并转义 golang 模板使用的所有其他 $
。以下命令将在接口 bridge
:
$> 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
就差不多了