# 桥接、主机与覆盖网络

URL: https://caijiao.org/docker/networking/types
Source: docs/docker/networking/types.md
Description: 本章节深入讲解 Docker 的桥接、主机和覆盖网络，包括各自原理、配置方法及适用场景，帮助开发者选择合适的网络类型进行容器部署和集群通信。

Docker 提供多种网络类型，每种类型在容器通信和性能上有不同特点。本节重点解析桥接网络、主机网络和覆盖网络。

## 1. 桥接网络（Bridge Network）

- 默认网络类型，适用于单主机部署
- 容器通过虚拟网桥（docker0）互相通信
- 容器与宿主机通信需端口映射
- 创建自定义桥接网络：

```bash
docker network create my-bridge
docker run -d --network my-bridge myapp
````

- 优势：

  - 隔离容器网络，保证安全
  - 可自定义子网和 IP 范围

## 2. 主机网络（Host Network）

- 容器共享宿主机网络栈，无隔离
- 适用于对网络性能要求高的服务

```bash
docker run --network host myapp
```

- 优势：

  - 高性能，零网络开销
- 注意事项：

  - 容器端口与宿主机冲突需注意
  - 不适合多实例隔离部署

## 3. 覆盖网络（Overlay Network）

- 用于 Docker Swarm 或 Kubernetes 集群
- 支持跨主机容器通信
- 基于 VXLAN 封装实现安全隔离
- 创建 overlay 网络（需 Swarm 模式）：

```bash
docker network create -d overlay my-overlay
```

- 优势：

  - 跨主机通信
  - 支持服务发现
- 典型场景：

  - 分布式应用
  - 微服务架构

## 4. 网络选择指南

| 网络类型    | 适用场景    | 优势         | 注意事项                |
| ------- | ------- | ---------- | ------------------- |
| Bridge  | 单主机容器通信 | 网络隔离，自定义子网 | 需端口映射访问宿主机          |
| Host    | 高性能服务   | 零网络开销      | 端口冲突，缺乏隔离           |
| Overlay | 多主机集群   | 跨主机通信，服务发现 | 需 Swarm/K8s 支持，配置复杂 |

---

理解桥接、主机与覆盖网络的原理与应用，有助于在不同场景下选择合适网络类型，保证容器通信效率和安全性。
