简介

在日常使用 Docker 的过程中,Docker 会为容器自动创建和管理虚拟网络,常见的类型包括 bridge、host、none 以及用户自定义的 bridge 网络。每一个 Docker 网桥网络都会占用一个子网(Subnet),例如 172.17.0.0/16 或 192.168.5.0/24。
如果长期运行和删除容器,会积累很多不再使用的网络,可能导致 子网冲突 或 新建网络失败。因此,掌握如何查看 Docker 网络所占用的网段,是运维和排查问题的重要技能。

版本不依赖 jq,适合所有环境

#!/bin/bash
for net in $(docker network ls --format '{{.Name}}'); do
    subnet=$(docker network inspect "$net" | grep Subnet | awk -F'"' '{print $4}')
    echo "$net -> $subnet"
done

执行效果:

bridge -> 172.17.0.0/16
host -> 
none -> 
my_net -> 192.168.5.0/24

在这里插入图片描述


一行命令列出所有网段

docker network inspect $(docker network ls -q) \
  | grep Subnet

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐