跟着《自己动手写 docker》从零开始实现一个简易版的 docker,主要用于加深对 docker 的理解。1. 概述
源码及相关教程见 Github。
相关笔记: veth-pairVeth是成对出现的两张虚拟网卡,从一端发送的数据包,总会在另一端接收到。
即:通过 veth 来突破 network namespace 的封锁bridge
相关笔记:Linux bridge我们可以认为Linux bridge就是虚拟交换机,连接在同一个bridge上的容器组成局域网,不同的bridge之间网络是隔离的。
docker network create [NETWORK NAME]实际上就是创建出虚拟交换机。交换机是工作在数据链路层的网络设备,它转发的是二层网络包。最简单的转发策略是将到达交换机输入端口的报文,广播到所有的输出端口。当然更好的策略是在转发过程中进行学习,记录交换机端口和MAC地址的映射关系,这样在下次转发时就能够根据报文中的MAC地址,发送到对应的输出端口。
相关笔记:iptablesNAT(Network Address Translation),是指网络地址转换。
这样其他节点来的流量和本机直接访问流量都可以正常 DNAT 了。
实际上docker network 就是使用了veth、Linux bridge、iptables等技术,帮我们创建和维护网络。具体分析一下:
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |