为什么要显式规划子网
自定义网络可以显式指定子网与网关,用来控制容器地址的分配范围。这一步的意义在于避免与办公网、虚拟专用网或其他自定义网络的地址段重叠:一旦重叠,容器访问对应网段的服务会被错误路由,表现为内网服务超时或直接不通。批量建网前先做一次网段普查更稳妥。
基本信息
| 用途 | 规划自定义网络的地址段 |
|---|---|
| 语法 | 创建网络时指定子网与网关 |
| 查看占用 | 逐个检查各网络的地址管理配置 |
| 规划要点 | 地址空间要匹配业务规模 |
| 冲突后果 | 路由异常与访问不通 |
典型使用场景
- 新建自定义网络前规划地址段
- 排查容器访问内网服务超时的问题
- 批量建网前做全网段冲突普查
- 为静态地址分配预留可用的地址范围
- 多环境隔离时给每套环境划分独立网段
创建与普查
创建与普查
docker network create --subnet 10.77.0.0/24 --gateway 10.77.0.1 app-net
docker network inspect app-net --format '{{json .IPAM.Config}}' # 核对子网与网关
docker network ls -q | xargs docker network inspect --format '{{.Name}} {{json .IPAM.Config}}' # 全量普查地址配置读法
| 字段 | 含义 | 注意 |
|---|---|---|
| Subnet | 网络地址段 | 避免与现有网段重叠 |
| Gateway | 网关地址 | 通常是网段内第一个可用地址 |
| IPRange | 可分配范围 | 可在网段内进一步限定 |
| 可用地址数 | 排除网关与广播地址后 | 要与容器规模相匹配 |
给网络留出足够的地址空间:容器数量与网关、广播地址之外的可用地址要匹配业务规模,避免后续扩容时无地址可用。
两个 Docker 网络使用同一子网时会创建失败或产生路由异常,批量建网前需要统一规划并留一份网段台账。
规划要点
- 先梳理现有网段:办公网、虚拟专用网与其他网络都要纳入清单
- 按环境划分独立网段,避免跨环境重叠
- 为扩容预留空间,不要按当前容器数把地址用满
- 把已分配网段登记成台账,新网络创建前先查台账