网络驱动程序
目录
Docker的网络子系统是可插拔的,使用驱动程序。默认情况下存在多个驱动程序,并提供核心网络功能:
bridge: 默认的网络驱动程序。如果您不指定驱动程序,这是您正在创建的网络类型。桥接网络通常用于您的应用程序运行在需要与同一主机上的其他容器通信的容器中。 参见 桥接网络驱动。host: 移除容器与Docker主机之间的网络隔离,直接使用主机的网络。 参见 主机网络驱动。overlay: 覆盖网络将多个Docker守护进程连接在一起,并使Swarm服务和容器能够在节点之间通信。这种策略消除了进行操作系统级路由的需要。参见覆盖网络驱动程序。ipvlan: IPvlan 网络让用户完全控制 IPv4 和 IPv6 地址分配。VLAN 驱动程序在此基础上,让操作员完全控制第 2 层 VLAN 标记,甚至为对底层网络集成感兴趣的用户提供 IPvlan L3 路由。参见 IPvlan 网络驱动程序。macvlan: Macvlan 网络允许您为容器分配一个 MAC 地址,使其在您的网络中显示为物理设备。Docker 守护进程通过 MAC 地址将流量路由到容器。在处理期望直接连接到物理网络而不是通过 Docker 主机的网络堆栈进行路由的传统应用程序时,使用macvlan驱动程序有时是最佳选择。 参见 Macvlan 网络驱动程序。none: 完全将容器与主机和其他容器隔离。none不适用于 Swarm 服务。 参见 None 网络驱动。网络插件: 你可以安装并使用第三方网络插件与Docker一起使用。
网络驱动概述
- 默认的桥接网络适用于运行不需要特殊网络功能的容器。
- 用户定义的桥接网络使得同一Docker主机上的容器能够相互通信。用户定义的网络通常为属于同一项目或组件的多个容器定义一个隔离的网络。
- 主机网络与容器共享主机的网络。当您使用此驱动程序时,容器的网络不会与主机隔离。
- 当您需要运行在不同Docker主机上的容器进行通信时,或者当多个应用程序使用Swarm服务一起工作时,覆盖网络是最佳选择。
- 当您从虚拟机设置迁移或需要您的容器看起来像网络上的物理主机时,Macvlan网络是最佳选择,每个容器都有一个唯一的MAC地址。
- IPvlan 类似于 Macvlan,但不会为容器分配唯一的 MAC 地址。当网络接口或端口可以分配的 MAC 地址数量有限制时,考虑使用 IPvlan。
- 第三方网络插件允许您将Docker与专用网络堆栈集成。
网络教程
既然你已经了解了Docker网络的基础知识,可以通过以下教程加深理解: