Docker学习笔记(五)Docker跨主机网络--基础

一、跨主机的网络方案:

(1)docker原生的有overlay和macvlan;
(2)第三方方案:常用的包括flane、weave和calico;

二、libnetwork和CNM:

libnetwork是docker容器网络库,最核心的内容是其定义的Container Network Model,这个模型对容器的网络进行了抽象,由以下三部分组成:
Sandbox是容器的网络栈,容器上的整个网络组件的集合,包括interface,DNS和路由表等。Linux Network Namespace是Sandbox的标准实现,Sandbox可以包含来自多个不同Network的Endpoint;
Endpoint的作用是将Sandbox接入Network,她的典型实现是veth pair,一端在Network上,一端在容器内。一个Endpoint只能属于一个网络,也只能属于一个Sandbox。
Network包含一组Endpoint,同一Network的Endpoint可以直接通信,Network的实现可以是Linux Bridge、VLAN等。
综合以上三点,说白了就是:
Sandbox是容器内所有网络组件的统称,Endpoint是容器上的网卡,Network是我们创建的虚拟网桥。
有多少个容器,就会有多少个Sandbox,每个容器只有一个Sandbox。
一个Sandbox可以有多个Endpoint,但一个Endpoint只能属于一个Sandbox。
同样一个Network可以有多个Endpoint,同一Network的Endpoint之间可以直接通信。

发布了21 篇原创文章 · 获赞 6 · 访问量 2845

猜你喜欢

转载自blog.csdn.net/weixin_43334786/article/details/105408032