讲解 Docker 的四种网络模式

Docker 的四种网络模式

Docker 提供四种核心网络模式,分别适用于不同容器通信与隔离需求,运行容器时可通过 --net 指定网络模式,以下是四种网络模式的讲解与示例:

1、Bridge(桥接模式)‌
  • ‌默认模式‌,Docker 为容器分配独立虚拟网卡并接入 docker0 网桥
  • 容器间通过 Docker 网络通信,与外部网络隔离
  • 适用场景:常规应用隔离部署,需端口映射 (-p) 暴露服务‌
2、Host(主机模式)‌
  • 容器直接共享宿主机网络命名空间,‌无独立网络栈‌
  • 性能最佳(无 NAT 转换),但会占用宿主机端口(可能冲突)
  • 适用场景:网络密集型应用(如负载均衡器),需避免端口转发开销

示例:指定 docker 网络模式为host模式,容器将直接使用宿主机的网络和端口。

# docker run -itd --name busybox-1 --net=host busybox
# docker exec -it busybox-1 ip a
lo: 
eth0: 
3、Container(容器共享模式)‌
  • 新容器共享指定容器的网络命名空间(如 --net=container:
  • 容器间可通过 localhost 直接通信,无需暴露端口
  • 适用场景:依赖紧密的容器组(如日志收集器与应用容器)

示例:指定 docker 网络模式为 container 模式,该容器会与其他容器共用网络和ip。

# docker run -itd --name busybox-1 --net=container:jenkins busybox
db77cfc262eb74d5995bc8ab8e9bcff06cc9a7276aca0da71f8379e56be7cd25
# docker exec -it busybox-1 ip a 
lo:
eth0@if19:
4、None(无网络模式)‌
  • 不配置任何网络接口,容器完全隔离
  • 需手动自定义网络栈(如通过 nsenter 命令)
  • 适用场景:安全性要求极高的任务或特殊网络调试

示例:指定 docker 网络模式为 none 模式,容器没有网卡,没有IP地址。

# docker run -itd --name busybox-1 --net=none  busybox
# docker exec -it busybox-1 ip a  
lo:

你可能感兴趣的:(Docker,docker,容器)