Docker 网络模式详解

Docker 四种网络模式详解

Docker 网络是容器通信的基础,搞懂四种网络模式,容器网络就不会乱。

1. bridge 模式(默认)

这是 Docker 默认的网络模式。容器在一个虚拟的 bridge 网络里,每个容器有自己的虚拟 IP,通过 NAT 访问外部网络。

# 启动容器,默认就是 bridge
docker run -d nginx

# 查看容器 IP
docker inspect 容器ID | grep IPAddress

特点:

  • 容器之间可以通过 IP 互相访问
  • 外部访问需要端口映射
  • 适合大多数场景

2. host 模式

容器直接用宿主机的网络,没有独立的网络栈。

docker run -d --net=host nginx

特点:

  • 网络性能最好,没有 NAT 开销
  • 端口直接用宿主机的,不用映射
  • 多个容器不能用同一个端口

适合对性能要求高的场景。

3. none 模式

容器没有网络,完全隔离。

docker run -d --net=none nginx

特点:

  • 没有任何网络
  • 安全级别最高
  • 适合不需要网络的离线计算任务

4. container 模式

新创建的容器和一个已存在的容器共享网络。

docker run -d --net=container:nginx容器ID redis

特点:

  • 两个容器共享网络栈
  • 可以用 localhost 互相访问
  • 适合紧密配合的服务

5. 自定义网络

生产环境推荐用自定义网络,不用默认的 bridge:

# 创建自定义网络
docker network create mynet

# 容器加入自定义网络
docker run -d --net=mynet --name web nginx
docker run -d --net=mynet --name app php

同一个自定义网络里的容器,可以直接用容器名互相访问,不用记 IP。

总结

四种网络模式各有适用场景:

  • 日常开发用默认 bridge
  • 性能要求高用 host
  • 安全要求高用 none
  • 容器间通信密集用自定义网络

搞懂这四种模式,Docker 网络基本就够用了。


emer 发布于  2026-10-4 10:44