Docker 网络详解

一、核心概念

容器之间、容器与宿主机的通信由 网络驱动 决定。Docker 默认提供多种网络模式:

二、主要网络模式

1. Bridge(默认桥接模式)

  • 每个容器分配一个虚拟 IP;
  • 同一网络下容器可通过名称互通;
  • 默认网段通常为 172.17.0.0/16

示例:创建自定义网络并连接容器

docker network create mynet

docker run -d --name web --network mynet nginx
docker run -d --name db --network mynet mysql:8.0

此时 web 可通过 db:3306 访问 MySQL。

2. Host(宿主机模式)

  • 容器直接使用宿主机网络接口,无虚拟化;
  • 网络性能最佳,但端口易冲突。
docker run --network host nginx

3. None(无网络模式)

  • 容器无网络功能;
  • 用于高安全隔离场景。
docker run --network none busybox

三、网络排查与实践技巧

docker network ls             # 查看所有网络
docker network inspect mynet  # 查看网络详情
docker network rm mynet       # 删除自定义网络