网络驱动程序概述

Docker 的网络子系统是可插拔的,使用驱动程序。默认情况下存在多个驱动程序,并提供核心网络功能

  • bridge: 默认网络驱动程序。如果您未指定驱动程序,则创建的网络类型为这种类型。当您的应用程序在需要与同一主机上的其他容器通信的容器中运行时,桥接网络通常使用。请参阅 桥接网络驱动程序.

  • host: 删除容器和 Docker 主机之间的网络隔离,并直接使用主机的网络。请参阅 主机网络驱动程序.

  • overlay: Overlay 网络将多个 Docker 守护程序连接在一起,并使 Swarm 服务和容器能够跨节点通信。此策略消除了执行操作系统级路由的需要。请参阅 Overlay 网络驱动程序.

  • ipvlan: IPvlan 网络让用户可以完全控制 IPv4 和 IPv6 地址。VLAN 驱动程序建立在它之上,为用户提供对层 2 VLAN 标记的完全控制,甚至为对下层网络集成感兴趣的用户提供 IPvlan L3 路由。请参阅 IPvlan 网络驱动程序.

  • macvlan: Macvlan 网络允许您将 MAC 地址分配给容器,使其在您的网络上显示为物理设备。Docker 守护程序通过其 MAC 地址将流量路由到容器。在处理需要直接连接到物理网络(而不是通过 Docker 主机网络堆栈路由)的传统应用程序时,使用 macvlan 驱动程序有时是最佳选择。请参阅 Macvlan 网络驱动程序.

  • none: 完全隔离容器与主机和其他容器。none 不适用于 Swarm 服务。请参阅 None 网络驱动程序.

  • 网络插件: 您可以使用 Docker 安装和使用第三方网络插件。

网络驱动程序摘要

  • 默认桥接网络适用于运行不需要特殊网络功能的容器。
  • 用户定义的桥接网络使同一 Docker 主机上的容器能够相互通信。用户定义的网络通常为属于公共项目或组件的多个容器定义一个隔离的网络。
  • 主机网络与容器共享主机的网络。当您使用此驱动程序时,容器的网络不会与主机隔离。
  • Overlay 网络最适合在需要在不同 Docker 主机上运行的容器进行通信,或者多个应用程序使用 Swarm 服务协同工作时。
  • Macvlan 网络最适合从 VM 设置迁移,或者需要您的容器在您的网络上看起来像物理主机,每个容器都有唯一的 MAC 地址。
  • IPvlan 与 Macvlan 类似,但不会为容器分配唯一的 MAC 地址。如果对可以分配给网络接口或端口的 MAC 地址数量有限制,请考虑使用 IPvlan。
  • 第三方网络插件允许您将 Docker 集成到专门的网络堆栈中。

网络教程

既然您了解了 Docker 网络的基础知识,请使用以下教程来加深您的理解