当前位置:嗨网首页>书籍在线阅读

11-本章小结

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

11.4 本章小结

容器网络模型(CNM)是Docker网络架构的主要设计文档,它定义了Docker网络中用到的3个主要结构——沙盒、终端以及网络。

Libnetwork是开源库,采用Go编写,实现了CNM。Docker使用了该库,并且Docker网络架构的核心代码都在该库当中。Libnetwork同时还提供了Docker网络控制层和管理层的功能。

驱动通过实现特定网络类型的方式扩展了Docker网络栈(Libnetwork),例如桥接网络和覆盖网络。Docker内置了几种网络驱动,同时也支持第三方驱动。

单机桥接网络是基本的Docker网络类型,对于本地开发和小型应用来说也十分适用。单机桥接网络不可扩展,并且对外发布服务依赖于端口映射。Linux Docker使用内置的 Bridge 驱动实现单机桥接网络,而Windows Docker使用内置的 NAT 驱动来实现。

覆盖网络是当下流行的方式,并且是一种出色的多机容器网络方案。第12章会深入介绍覆盖网络。

Macvlan 驱动(在Windows中是 Transparent )允许容器接入现存物理网络以及VLAN。通过赋予容器MAC和IP地址的方式,让容器成为网络中的“一等公民”。不过,该驱动需要主机的NIC支持混杂模式,这意味着该驱动在公有云上无法使用。

Docker使用Libnetwork实现了基础服务发现功能,同时还实现了服务网格,支持对入站流量实现容器级别负载均衡。

202002194AC36B63.jpg