文章目录
- 1. Docker 网络架构概述
- 一、Linux 内核网络命名空间(Network Namespace):容器网络隔离的“独立房间”
- 1. 原理拆解
- 2. Docker 中的应用
- 3. 通俗类比
- 4. 实操验证(Linux 命令直接感受 netns)
- 二、veth pair 虚拟网卡对:容器与外部通信的“专用网线”
- 1. 原理拆解
- 2. Docker 中的应用
- 3. 通俗类比
- 4. 实操验证(用 veth pair 连接两个 netns)
- 三、Linux Bridge(虚拟桥接):容器间通信的“虚拟交换机”
- 1. 原理拆解
- 2. Docker 中的应用
- 3. 通俗类比
- 4. 实操验证(用 Linux Bridge 连接多个 netns)
- 四、Docker 网络架构核心逻辑总结
1. Docker 网络架构概述
Docker 网络的核心本质是“基于 Linux 内核原生技术的封装与编排”—— 它没有发明新的网络协议,而是通过组合 Linux 内核的三大核心网络技术(网络命名空间、veth pair、虚拟桥接),实现了容器的网络隔离、通信与转发。理解这三大技术,就能看透 Docker 网络的底层逻辑。
一、Linux 内核网络命名空间(Network Namespace):容器网络隔离的“独立房间”
1. 原理拆解
网络命名空间(简称 netns)是 Linux 内核提供的网络资源隔离技术—— 它能为进程创建一个“独立的网络环境”,每个 netns 拥有自己独立的:
- 网络接口(网卡,如 eth0)
- IP 地址、子网掩码、网关
- 路由表
- DNS 配置(/etc/resolv.conf)
- 端口号(如 80、443)
简单说:不同 netns 中的进程,完全看不到对方的网络资源,就像住在两个独立的“网络房间”里,天然实现网络隔离。
2. Docker 中的应用
Docker 容器的网络隔离,本质就是通过“为每个容器分配独立的 netns”