怎样通过 docker network create 命令自定义 Bridge 子网掩码教程

作者:袖梨 2026-07-16
直接用 docker network create 指定子网和掩码是最简单可控的方式,关键在于选对 CIDR 段(如避开默认的 172.17.0.0/16,推荐 172.24.0.0/24)、配好网关(如 172.24.0.1),并通过 docker network inspect 验证 subnet 和 gateway 是否生效,避免不带前缀、网关越界或子网冲突等常见错误。

直接用 docker network create 指定子网和掩码,是最简单也最可控的方式——关键不是“能不能”,而是选对 CIDR 段、避开冲突、配好网关。

选一个不冲突的子网范围

Docker 默认桥接网络用的是 172.17.0.0/16,所以你自定义时要绕开它。推荐优先考虑:

  • 172.20.0.0/16 到 172.31.0.0/16:共 16 个 /16 网段,Docker 默认只占一个,其余基本空闲,冲突概率极低
  • 次选 10.100.0.0/1610.200.0.0/16:避开家庭路由器常用的 10.0.0.0/2410.1.1.0/24 等段
  • 慎用 192.168.x.0/24:VMware、VirtualBox、手机热点常占 192.168.56.0/24192.168.43.0/24,除非你确认该 x 值完全未被宿主机或虚拟网卡使用

用 --subnet 显式指定 CIDR 格式

子网掩码在命令里不单独写,而是通过 CIDR 表示法(如 /24)隐含在 --subnet 参数中:

  • /24 → 掩码 255.255.255.0 → 可用 IP 约 254 个
  • /22 → 掩码 255.255.252.0 → 可用 IP 约 1022 个(适合中等规模容器集群)
  • /16 → 掩码 255.255.0.0 → 可用 IP 约 65534 个(慎用,易与局域网重叠)

例如创建一个带网关的干净网络:

docker network create --subnet=172.24.0.0/24 --gateway=172.24.0.1 mynet

验证配置是否生效

创建后立即检查,避免“以为设了其实没生效”:

  • 运行 docker network inspect mynet
  • 重点看 IPAM.Config.SubnetIPAM.Config.Gateway 字段是否匹配你指定的值
  • 如果显示 172.17.0.0/16 或空值,说明命令漏写了 --subnet,需删掉重建:docker network rm mynet

常见错误提醒

这些坑新手容易踩:

  • 只写 --subnet=172.24.0.0 不带 /24 → 报错或静默失败
  • 网关地址不在子网范围内(比如 --subnet=172.24.0.0/24 --gateway=172.24.1.1)→ 创建失败
  • 重复使用已被占用的子网(如宿主机有 192.168.56.1/24,你还建 192.168.56.0/24)→ 容器可能无法访问外网

相关文章

精彩推荐