教程 docker tutorial

桥接、主机与覆盖网络

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 支持,配置复杂

理解桥接、主机与覆盖网络的原理与应用,有助于在不同场景下选择合适网络类型,保证容器通信效率和安全性。