全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-21 6 分钟 ✍️ juanwangdev

Bridge 网络模式

Bridge 是 Docker 默认网络模式,下面介绍其原理与配置方法。

docker0 默认网桥

Bash
# 查看默认网桥
docker network ls

# 输出
NETWORK ID     NAME      DRIVER    SCOPE
a1b2c3d4e5f6   bridge    bridge    local
Bash
# 查看网桥详情
docker network inspect bridge

# 输出
{
    "Name": "bridge",
    "Driver": "bridge",
    "IPAM": {
        "Config": [
            {
                "Subnet": "172.17.0.0/16",
                "Gateway": "172.17.0.1"
            }
        ]
    }
}

默认 bridge 特点

Bash
# 容器连接默认 bridge
docker run -d --name my-nginx nginx
docker run -d --name my-app my-app

通信方式

Bash
# 默认 bridge 下需使用 IP 通信
docker exec my-app curl 172.17.0.2:80

# 不支持 DNS 解析(旧版 Docker)
# 新版 Docker 支持 bridge DNS

默认 bridge 网络中,容器可通过 IP 互通,但 DNS 解析需要自定义网络。

自定义 bridge 网络

Bash
# 创建自定义 bridge
docker network create my-bridge

# 创建时指定子网
docker network create \
  --driver bridge \
  --subnet 192.168.1.0/24 \
  --gateway 192.168.1.1 \
  my-bridge

# 查看网络
docker network ls

连接容器到自定义网络

Bash
# 创建容器并加入自定义网络
docker run -d --name web --network my-bridge nginx
docker run -d --name app --network my-bridge my-app

# 容器间可通过名称通信
docker exec app curl web:80

# 容器可加入多个网络
docker network connect my-bridge db

网络隔离

Bash
# 不同网络的容器默认隔离
docker network create frontend
docker network create backend

docker run -d --name web --network frontend nginx
docker run -d --name app --network frontend,backend my-app
docker run -d --name db --network backend postgres

# web 无法直接访问 db(不在同一网络)
# app 可访问 web 和 db(跨网络)

网络配置选项

Bash
# 完整创建参数
docker network create \
  --driver bridge \
  --subnet 192.168.1.0/24 \
  --ip-range 192.168.1.128/25 \
  --gateway 192.168.1.1 \
  --opt com.docker.network.bridge.name=my-br0 \
  --opt com.docker.network.bridge.enable_ip_masquerade=true \
  --opt com.docker.network.bridge.enable_icc=true \
  my-network
选项说明
--subnet子网地址
--gateway网关地址
--ip-rangeIP 分配范围
enable_ip_masqueradeIP 伪装(NAT)
enable_icc容器间通信

断开网络

Bash
# 容器断开网络
docker network disconnect my-bridge web

# 删除网络
docker network rm my-bridge

# 删除未使用网络
docker network prune

默认 bridge vs 自定义 bridge

对比项默认 bridge自定义 bridge
DNS 解析旧版不支持支持
网络隔离可隔离
配置灵活固定可自定义子网等
推荐度⚠️

生产环境建议使用自定义 bridge 网络,支持 DNS 解析和隔离。

要点总结

  • docker0 是 Docker 默认网桥,子网 172.17.0.0/16
  • 默认 bridge 下容器可通过 IP 通信,DNS 解析需自定义网络
  • 自定义 bridge 支持 DNS 解析、网络隔离、子网配置
  • 容器可加入多个网络实现跨网络通信
  • 生产环境推荐使用自定义 bridge 网络

📝 发现内容有误?点击此处直接编辑

← 上一篇 环境变量与配置文件
下一篇 → Host 网络模式
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库