Docker网络-容器网络模型
1. 容器网络模型(CNM) Docker网络架构建立在一组称为容器网络模型(CNM)的接口上。CNM的理念实现了在不同基础设施的应用程序可移植性,同时在功能方面也具有不错的表现。 CNM架构 CNM中有几个比较重要的概念。它们都是与操作系统和基础架构无关的,因此无论基础架构堆栈如何,应用程序都可以无感知的使用。 沙箱(Sandbox)-沙箱包含容器的网络堆栈的配置。这包括对容器接口,路由表和DNS设置的管理。沙盒的实现可以是Linux网络命名空间,FreeBSD Jail或其他类似的概念。沙盒可能包含来自多个网络的许多端点(Endpoint)。 端点(Endpoint)-端点将沙盒连接到网络。存在Endpoint构造,因此可以从应用程序中抽象出到网络的实际连接。这有助于保持可移植性,以便服务可以使用不同类型的网络驱动程序,而不必担心其与该网络的连接方式。 网络-CNM未根据OSI模型指定网络。网络的实现可以是Linux网桥,VLAN等。网络是端点之间具有连通性的集合。未连接到网络的端点将无法在网络上建立连接。 2. CNM驱动程序接口 容器网络模型提供了两个可插拔的开放接口,用户,社区和供应商可以使用它们来控制网络中的某些功能,可见性或网络控制。 2.1 网络驱动种类 1. 网络驱动程序( Network Drivers):Docker网络驱动程序才是网络正常工作的实际实现