网络驱动程序

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服务。请参阅无网络驱动程序

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

网络驱动程序摘要

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

网络教程

现在您已经了解了Docker网络的基础知识,请使用以下教程加深您的理解