Docker 提供了多种网络模式,每种模式适用于不同的场景,以下是主要的 Docker 网络模式及其特点:
docker0 虚拟网桥实现容器间通信。-p 参数)。bash
docker run -d --name my_container -p 8080:80 nginxbash
docker run -d --name my_container --network host nginxdocker exec 进入容器操作。bash
docker run -d --name my_container --network none alpine sleep 3600localhost 直接通信。bash
docker run -d --name container1 nginx
docker run -d --name container2 --network container:container1 alpinebash
# 创建 Overlay 网络(需 Swarm 模式)
docker network create -d overlay my_overlay_netbash
docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 my_macvlan| 模式 | 隔离性 | 性能 | 跨主机 | 典型用途 |
|---|---|---|---|---|
| Bridge | 高 | 中 | 否 | 单主机容器通信 |
| Host | 无 | 高 | 否 | 高性能需求 |
| None | 完全 | - | 否 | 完全隔离 |
| Container | 共享 | 高 | 否 | 共享网络栈(如 Sidecar) |
| Overlay | 高 | 中 | 是 | 集群跨节点通信 |
| Macvlan | 高 | 高 | 是 | 容器作为物理网络设备 |
| IPvlan | 高 | 高 | 是 | MAC 地址受限环境 |
bridge 或自定义桥接网络。overlay(Swarm/K8s)或 macvlan(直连物理网络)。host 模式(牺牲隔离性)。none 或自定义防火墙规则。通过 docker network ls 查看现有网络,docker network inspect <NETWORK> 查看详细信息。