Docker 默认网络:docker0 网桥与容器网络连接机制
- Linux系统
- 3小时前
- 6热度
- 0评论
Docker 默认网络:docker0 网桥与容器网络连接机制
一、docker0 简介
docker0 是 Docker 安装后自动生成的默认虚拟桥接网卡,属于 Docker 网络的基础设施。
其默认 IP 地址为 172.17.0.1,作为容器网段的网关,用于连接宿主机与容器。
✅ 本质上,
docker0是一个 Linux Bridge(桥接设备),起到“虚拟交换机”的作用,使所有默认网络容器可以互通。

二、容器创建与网络结构
当执行以下命令创建两个 Tomcat 容器时:
docker run -d --name tomcat01 tomcat
docker run -d --name tomcat02 tomcat
Docker 会自动建立如下网络结构:

三、网络组成分析
1. 容器内部网络接口
- 每个容器(如
tomcat01、tomcat02)内部会生成eth0接口。 - Docker 为其分配默认网段 IP:
tomcat01→172.17.0.2tomcat02→172.17.0.3
- 均属于
172.17.0.0/16网段。
2. 虚拟接口对(Veth Pair)
- 宿主机上同时生成对应的虚拟接口(如
veth9e...、veth38...)。 - 这些接口与容器内的
eth0成对存在。 - 宿主机侧接口被挂接到
docker0网桥上,实现容器与主机之间的网络互通。
🧩 类比理解:
每对veth接口就像一根“虚拟网线”,一头插在容器里(eth0),另一头插在docker0这个虚拟交换机上。
3. 网络通信逻辑
-
容器间通信
tomcat01(172.17.0.2) ↔tomcat02(172.17.0.3)
通过docker0直接通信,无需额外配置。 -
容器访问外部网络
容器通过docker0网关(172.17.0.1),再经宿主机物理网卡(如eth0)访问外网。

四、运行机制总结
docker0是 Docker 安装时创建的默认虚拟网桥。- 容器启动时,Docker 会为其创建一对 虚拟接口(Veth Pair):
- 一端在容器内部(
eth0,IP 为172.17.x.x); - 另一端在宿主机上(
vethXXX),并挂载到docker0上。
- 一端在容器内部(
- 当容器被删除时,其对应的虚拟接口会一并销毁,仅
docker0作为核心网桥保留。

五、核心特性与结论
| 功能 | 说明 |
|---|---|
| 容器间通信 | 所有默认网络容器可通过 docker0 互通 |
| 外网访问 | 通过 docker0 网关访问宿主机与外网 |
| 隔离机制 | 容器通过虚拟接口与外界通信,实现轻量级隔离 |
| 自动管理 | 容器删除时,相关虚拟接口自动清理,docker0 持续存在 |
✅ 总结一句话
docker0就像一个默认的虚拟交换机(或路由器),
所有未指定网络的容器都会接入其中,由它分配 IP 并负责通信路由。