可通过 docker network create 创建支持 DNS 解析的自定义桥接网络,实现容器名通信;支持指定子网、网关及固定 IP;运行中容器可动态连接或断开网络;需用 docker network ls/inspect/rm 管理网络资源。

可以通过 docker network create 命令快速创建自定义桥接网络,这是容器间通信和网络隔离最常用的方式。
创建基础自定义桥接网络
Docker 默认使用 bridge 网络,但自带的 bridge 不支持容器名自动解析(即无法直接用容器名 ping 通)。自定义网络默认启用内置 DNS,让容器能通过名称互相访问。
- 运行命令创建网络:
docker network create my-network - 启动容器并加入该网络:
docker run -d --name web --network my-network nginxdocker run -it --network my-network alpine ping web(会成功)
指定子网与网关增强可控性
生产环境中建议显式指定 CIDR 子网和网关,避免与宿主机或其他网络冲突。
- 示例命令:
docker network create --subnet=172.20.0.0/16 --gateway=172.20.0.1 my-secure-net - 子网掩码需合理(如 /16 支持 65534 个地址),网关 IP 必须在子网范围内
- 后续容器若不指定 IP,Docker 会自动从子网中分配;也可用
--ip固定分配,例如:docker run -d --name db --network my-secure-net --ip 172.20.0.10 mysql:8
连接已有容器到自定义网络
运行中的容器可以动态接入新网络,无需重启。
- 将容器添加进网络:
docker network connect my-network app-container - 验证连通性:
docker exec app-container ping web - 如需断开:
docker network disconnect my-network app-container
查看与清理网络资源
日常维护需要确认网络状态,并及时清理未使用的网络避免冗余。
- 列出所有网络:
docker network ls - 查看某网络详情(含连接容器):
docker network inspect my-network - 删除网络(必须先断开所有容器):
docker network rm my-network
不复杂但容易忽略:自定义网络是实现容器间安全通信、服务发现和环境隔离的基础,建议开发、测试、CI 环境都优先使用命名网络而非默认 bridge。


















