教程 docker tutorial

Docker 网络模型概述

Docker 网络模型决定了容器之间如何通信、如何访问宿主机及外部网络。理解 Docker 的网络模型有助于容器化应用的部署、调试与安全管理。

1. Docker 网络类型

Docker 提供多种网络类型,每种类型适用于不同场景:

1.1 桥接网络(Bridge)

  • 默认网络类型
  • 容器在同一桥接网络内可互相通信
  • 容器通过 NAT 与宿主机通信
  • 创建自定义桥接网络:
bash
docker network create my-bridge
docker run -d --network my-bridge myapp

`

1.2 主机网络(Host)

  • 容器共享宿主机网络栈
  • 无网络隔离,性能高
  • 适用于对网络性能要求高的场景:
bash
docker run --network host myapp

1.3 覆盖网络(Overlay)

  • 用于 Swarm 或 Kubernetes 集群
  • 跨主机容器通信
  • 使用 VXLAN 封装流量,实现集群内部互联

1.4 无网络(None)

  • 容器没有网络接口
  • 适用于特殊隔离或安全场景

2. Docker 默认网络

  • bridge:默认容器连接的网络
  • host:共享宿主机网络
  • none:没有网络
  • overlay:集群环境使用

查看默认网络:

bash
docker network ls

3. 容器通信机制

  • Docker 使用 NAT、端口映射和虚拟接口实现容器与宿主机及外部的通信

  • 容器间通信:

    • 同一网络可通过容器名称或 IP 互相访问
  • 容器与宿主机通信:

    • 桥接网络需端口映射
    • 主机网络无需映射,直接访问宿主机端口

4. 网络管理命令

  • 创建网络:
bash
docker network create mynetwork
  • 查看网络:
bash
docker network inspect mynetwork
  • 删除网络:
bash
docker network rm mynetwork

掌握 Docker 网络模型及配置方法,可以确保容器间通信顺畅、安全可靠,并优化网络性能。