首页/云/Docker 容器速查/docker network create 创建自定义网络
网络与存储52 条

docker network create 创建自定义网络

创建用户自定义 bridge 网络并指定网段、网关或 internal 隔离属性;容器接入自定义网络后才能用名称互相解析。

Docker 容器速查云更新于 2026-10-13

创建自定义网络是什么

创建一个由用户命名的容器网络,并可以指定网段、网关,或把它设为仅内部互通。与默认网络最大的差别是自带名称解析:同一自定义网络里的容器可以用容器名或别名互相访问,不再依赖手工维护地址,这大幅简化了多容器应用的连接方式。

基本信息

语法docker network create [选项] 名称
默认驱动本机桥接网络
常用选项--subnet 指定网段 --gateway 指定网关 --internal 禁止外部访问 --attachable 允许手工接入
其他驱动跨主机覆盖网络、物理网络接入等,按场景选择
命名要求同一引擎内网络名唯一,重名时需要先删除或改用标识

典型使用场景

  • 多服务应用组网:把应用与依赖放进同一网络,直接用服务名互访
  • 环境隔离:不同项目用不同网络,避免误连到别的项目服务
  • 仅内部互通:数据库网络设为内部,只允许应用访问,不对外暴露
  • 固定网段:与既有网络规划对齐,避免与办公网、专线地址冲突
  • 跨主机通信:集群环境下用覆盖网络让不同主机上的容器互通

常用示例

常用示例
docker network create app-net                                  # 默认桥接网络
docker network create --subnet 172.20.0.0/24 --gateway 172.20.0.1 app-net  # 指定网段
docker network create --internal db-net                       # 仅内部访问
docker run -d --network app-net --name api app/api:v1.2       # 容器接入网络
docker network inspect app-net                                # 查看网络里的容器与网段

预置网络与自定义网络

对比项预置桥接网络自定义网络
名称解析不支持按容器名解析支持按容器名与别名解析
隔离性所有容器共享,容易互相看到按需划分,隔离更清晰
网段由引擎默认分配可指定,便于与网络规划对齐
接入方式默认接入,改动少启动时显式指定,意图明确
适用场景临时试验常规多容器应用

规划网络时的注意点

  • 网段要与办公网、专线、其他环境错开,冲突会造成路由异常难以定位
  • 同一网段只能被一个网络占用,创建报冲突时先查看既有网络
  • 仅内部网络里的容器访问外网需要额外配置,别指望它自带出口
  • 网络命名与项目对应,删除容器组时一并清理网络,避免残留
  • 生产环境的网络变更要评估在跑的服务,删除网络会断开容器通信
自定义网络自带的名称解析是靠服务名工作的:应用配置里写服务名而不是地址,服务重建后地址变化也不影响连接。
把数据库网络设为仅内部访问,再让应用同时接入内部网络与对外网络,是常见的分层做法,能在不暴露数据库的前提下让应用对外服务。

易错点

  • 网段与办公网或专线冲突,容器能起但访问异常,排查容易跑偏到应用层
  • 创建网络时报网段重叠,原因是有其他网络已占用该段,需要先查看既有网络
  • 把依赖服务放进仅内部网络后忘了给应用加对外网络,应用能连依赖却无法对外提供服务
  • 容器组下线后忘记清理网络,多次部署后残留大量无用网络

数据来源与参考

  • Docker 官方 CLI 参考:docker network create(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌