自定义网桥是 Docker 实现容器组网隔离最常用且推荐的方式,支持子网指定、DNS 自动解析、内部网络限制及跨容器通信,不同网桥间容器默认完全隔离。

使用自定义网桥(Custom Bridge Network)是 Docker 中实现容器组网隔离最常用且推荐的方式。它比默认 bridge 网络更可控,能避免 IP 冲突、支持 DNS 自动解析、提供网络策略基础,并天然隔离不同网桥下的容器。
创建自定义网桥网络
通过 docker network create 命令创建独立网桥,Docker 会自动分配子网、网关并启动内置 DNS 服务:
- 基础命令:
docker network create mynet—— 使用默认配置(自动选子网,如 172.18.0.0/16) - 指定子网和网关:
docker network create --subnet=192.168.100.0/24 --gateway=192.168.100.1 mynet - 禁用外部访问(仅容器间通信):
--internal参数可阻止该网络内容器访问外网
运行容器时接入自定义网桥
使用 --network 指定网络名,容器启动后自动获得该网段 IP,并能通过容器名互相解析:
docker run -d --name web --network mynet nginx-
docker run -it --network mynet alpine ping web—— 可直接 ping 通,无需暴露端口或手动配置 hosts - 多个容器接入同一自定义网桥即构成一个逻辑隔离的“容器局域网”
跨容器通信与隔离控制
同网桥容器默认互通;不同网桥容器默认**完全隔离**(即使在同一宿主机),这是实现组网隔离的核心机制:
- 若需有限互通,可通过
docker network connect将容器加入多个网络(谨慎使用,可能削弱隔离性) - 如需禁止某容器访问外网,创建时加
--internal,或配合--ip固定 IP + iptables 规则进一步限制 - Docker 不提供原生防火墙策略,生产中建议搭配
iptables或 CNI 插件(如 Calico)做细粒度控制
查看与清理网络资源
便于验证配置和排查问题:
- 列出所有网络:
docker network ls - 查看某网络详情(含容器列表、IP 分配):
docker network inspect mynet - 删除未被使用的网络:
docker network rm mynet(注意:正在使用的网络无法删除) - 容器退出后仍可保留在网络中,如需彻底解绑,用
docker network disconnect mynet container_name
不复杂但容易忽略:自定义网桥是 Docker 原生支持的轻量级隔离方案,无需额外组件,适合开发、测试及中小型部署场景。关键在于避免混用默认 bridge 和自定义网络,确保业务容器始终明确归属单一逻辑网络。

















