
文章插图
其实当你在host1主机上创建好ov_net1的网络consul会自动将该网络信息同步至host2主机上 , 我们再host2主机进行验证一下

文章插图
4)我们在主机host1上创建容器test1 , 同时网络设置为ov_net1 , 具体操作如下
1. # 创建容器test1,并将网络指定为ov_net1 2. docker run -itd --name test1 --hostname test1 --network ov_net1 busybox 
文章插图
其实在我们创建容器test1后 , docker会自动创建一个docker_gwbridge的bridge网络 , 该网络用于我们上图所说的eth1网卡 , 从而能够让容器能够访问外部网络

文章插图
我们再看一下test1容器的路由信息 , 可以发现其默认路由直接指向了eth1接口 , 同时ping外网也确实能够ping通

文章插图

文章插图
5)最后我们在host2主机上创建test2容器 , 也指定其网络为ov_net1 , 然后验证test1与test2是否能够互访

文章插图
如上图我们在host2主机上成功创建了test2容器 , 同时其也自动配置了两个网卡接口一个用于连接overlay网络一个用于连接外部网络 。现在我们测试一下test2容器是否能够ping通test1容器 , 具体操作如下

文章插图
测试发现test2容器确实可以ping通test1容器 , 同时还实现了DNS功能 , 主动把test1容器的名称映射其对应的IP 10.0.0.2 。
下面我们来看看overlay网络能够连通的具体逻辑 , docker会为每个overlay网络创建一个独立的namespace , 在namespace中会创建一个br0的网桥 , 其上有两组endpoint , 一组endpoint的一端连br0一端连容器的eth0口 , 另外一组endponit的一端连br0另外一段连vxlan接口 , 该接口用于主机间建立vxlan tunnel , 不同主机上的容器就是通过该tunnel进行通信的 , 具体架构图如下:

文章插图
04 Docker MacVlan网络Macvlan其实是linux系统自带技术允许你在物理网卡上创建子接口 , 创建的这些子接口每个都有自己的唯一MAC地址 , 同时你也可以在这些子接口上配置IP , 然后可以将应用程序、虚机及容器绑定到指定的子接口 , 从而实现自己的MAC与IP直接连接到物理网络 , Macvlan的最大优点是性能比较好 , 缺点是许多nic对mac地址数量有限制 。Macvlan具体架构具体如下图:

文章插图
由于Macvlan在生产环境中部署较少 , 我们本篇文章就不做实验进行演示了 , 我们在这展示一下其创建的具体命令 , 感兴趣的可以按照下面命令自己来搭环境测试 。
1. # 创建macvlan网络mv_net1 , 其中parent=eth0是指定macvlan网络使用的接口 2. docker network create -d macvlan -o parent=eth0 mv_net1 3. # 创建容器test3指定其网络为mv_net1的macvlan网络 4. docker run -d --name test3 --network mv_net1 busybox 05 总结至此我们docker容器网络就全部讲完了 , 大家有什么问题欢迎在文章后面进行评论留言 , 最后如果喜欢不要忘了点赞、关注与转发哦!【IT工程师都需要掌握的容器技术之Docker容器网络】
推荐阅读
- 春娇与志明歌曲都有哪些
- 口红|口红这样选,黑皮都能变白皮
- 曾经在某一瞬间,我们都以为自己长大了 这一年就这样过去了,致自己
- 地球|如果太阳系最大彗星撞上地球:100万年都认不出来
- 韩国购物网都有哪些呢
- 春季皮肤过敏症状有哪些80%的人都有
- |职场装和蓝色女明星都在穿!既能打造出利落感,还能勾勒出气质
- 90后|未来几年,70、80和90后可能会面临2大问题,任何人都躲不掉
- 天星舞厅在哪?
- 九天开出一成都出自李白的哪首诗?
