如果使用命令:
docker network ls
你将获得列出所有 Docker 网络的输出,但缺少这些网络的 IP 范围。
如何获取所有创建的子网IP范围?
例如,如果我使用命令:
docker network create --subnet 172.31.0.1/16 --internal network-one
docker network create --subnet 173.31.0.1/16 --internal network-two
我想获取包含以下内容的地址范围列表
172.31.0.1/16
173.31.0.1/16
如果我能以某种格式将列表作为 CLI 输出,那就完美了:
network-one 172.31.0.1/16
network-two 173.31.0.1/16
...
所以我可以将其加载为 Bash 数组,稍后逐行或管道将其解析为另一个 CLI 命令。
试试这些命令:
docker network inspect $(docker network ls | awk '$3 == "bridge" { print $1}') | jq -r '.[] | .Name + " " + .IPAM.Config[0].Subnet' -
docker network inspect $(docker network ls -q)|grep -E "IPv(4|6)A"
我在 Bash 中使用以下命令
docker network ls --format "{{.Name}}" | while read i; do echo $i --- $(docker network inspect $i | grep Subnet); done
它读取网络列表,然后获取每个网络的Subnet
字段。