码迷,mamicode.com
首页 > 其他好文 > 详细

Docker网络模型

时间:2019-09-24 11:53:13      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:环境   数据传输   不同   交换   network   pac   空间   docker   传输   

技术图片

Docker容器技术基于Linux Container实现的。在Linux Container中,包含用于隔离进程的Namespaces。在众多Namespace技术里,存在一个Network Namespace,每个被Network Namespace隔离的空间都拥有自己的网络设备、IP地址、路由表、防火墙、网络配置、端口表等,Docker正是借助这个东西实现了对容器网络的隔离。

那么具体实现呢:

Namespace仅仅实现了网络的隔离,然而我们容器是需要与外界进行信息交流的。那么就由此出现了 虚拟网卡 veth-pair设备,这个设备是个虚拟网络通道,并且是成对出现的,用于连接两个网络终端:

技术图片

但是我们宿主机运行的不止一个容器,要实现众多容器之间的通信,就要利用Bridge,网桥。Docker利用Bridge把veth-pair设备的一端全部连接在Bridge所构成的交换机中,把容器连接不同外部网络的任务通过veth-pair转移到了Bridge上。

技术图片

默认Docker会创建一个docker0的虚拟网桥,连接在同一个网桥上的容器可以互相通信。通过ifconfig命令查看

技术图片

 

当启动容器,宿主机执行ifconfig会成对出现veth*:

技术图片

 

总结一下:

Network Namespace:实现了网络资源的隔离。

Veth Pair:打通了网络隔离环境的数据传输通道。在Docker中,一端连接到容器中的虚拟网卡上,一端连接到宿主机专用的网桥(docker0)上,通过这种方式实现了Docker容器和外部网络的互通。

Linux网桥:放置在宿主机中的网桥,起到了网络交换机的作用。因为容器网络通过Veth Pair连接到网桥上,所以它能够在容器间转发网络数据。

 

Docker网络模型

标签:环境   数据传输   不同   交换   network   pac   空间   docker   传输   

原文地址:https://www.cnblogs.com/LUA123/p/11577340.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!