问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

四、Docker网络揭秘

发布网友 发布时间:2022-09-21 13:05

我来回答

1个回答

热心网友 时间:2023-11-18 05:54

Docker 之所以功能这么强大,其实就是充分利用了Linux Kernel的特性:NameSpace、CGroups、UnionFileSystem。通过这些特性实现了资源隔离、*与分层等。本文这次就来揭晓Docker中的容器是如何做到网络互通的。

两台机器如果要实现通信,其实就是通过底层的网卡进行数据传输,每个网卡都有一个唯一的MAC地址,网卡又会绑定一个ip地址,只要两台机器的网络可以互通,那么这两台机器就可以进行通信。

想要实现通信,就得有两个同一网段的网卡,两个网卡必须是可以 ping 通的。

Docker在安装成功后,会在宿主机创建一个docker0网卡,这个网卡就是负责容器与宿主机之间通信的桥梁。

通过Docker创建一个容器之后,会在宿主机再创建一个网卡,也就是上面的 veth3543ea3@if7 ,容器内也会创建一个网卡。

一般成对的网卡,网卡组件名称后面的数字是连续的,比如宿主机的 @if7 和容器内的 @if8 ,正是这成对的网卡,才实现了容器与宿主机之间的通信。这其实是利用 Linux Kernel 的特性 NameSpace 实现的网卡隔离,不同NameSpace下的网卡是独立的,就像Java程序中的 package 一样。

从上面的例子中看到容器与宿主机之间的通信好像并不是通过docker0网卡实现的?

其实这只是单容器的状态,可能看不出docker0的作用。用图来表示一下单容器的网卡通信情况。

通过docker生成的 eth0 和 veth 两个网卡实现同一网段内的通信,而这个网卡又是桥接在docker0网卡上的。

再看下有多个容器的情况。

两个容器之间可以互相通信的原因就是因为docker0的存在,因为它们的网卡都是桥接在docker0上,所以也就有了和另一个容器通信的桥。

我们来验证一下是不是这样!

这种网络连接方法我们称为Bridge,这也是docker中默认的网络模式。可以通过命令查看docker中的网络模式:

通过 docker network ls 命令查看到,docker提供了3种网络模式,brige模式我们已经知道了,那 host 和 none 又是什么意思呢?不妨来验证一下:

这种模式只会创建一个本地的环路网卡,无法与其他容器或宿主机进行通信。

在创建自己的network之前先来解释一下为什么要创建新的network。

我们用一个例子来演示一下不同容器之间的通信。

容器之间通过 ip 是可以正常访问的,但是有没有这种情况:如果一个容器出问题了,我们重启之后它的ip变了,那是不是其他用到这个容器的项目配置是不是都得改。

有没有可能直接通过容器名称来访问呢?来验证一下:

发现并不能 ping 通,但是可以使用别的手段来达到这个目的。

通过上面这种方式就可以做到以容器名来 ping 通其他容器,其实它就跟windows系统中在 hosts 文件里加了个映射是一样的。

可以看到创建自定义的 network 自动帮我们实现了这个功能,而且使用自定义的 network 也方便管理,不同业务类型的容器可以指定不同的 network。

不同的 network ip网段也不一样,这样也可以增加单机中可以创建的容器的数量。

在创建一个容器的时候,一般都需要讲容器需要暴露的端口映射到物理主机的相同端口或其他端口,因为在*环境下是不方便直接连接到容器的,所以需要通过映射端口的方式,让*访问宿主机的映射端口来访问容器。

如果想建立多个容器,势必需要端口映射,以满足不同容器使用相同端口的情况。

以上这些内容都是在单容器进行操作,容器之间通信也只是通过 docker0 实现的桥接模式。

如果要实现多机之间的docker通信,其实还是通过网卡,只不过需要其他的技术来实现了。

本章节就不在演示,到后面的章节再来分析!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机puik什么意思 广东江南理工高级技工学校地址在哪里 广州市技师学院具体地址 广州市高级技工学校江高校区有什么专业 广州市高级技工学校学校地址 话费支付是什么意思? 2019年华为保值机型排行:P40系列保值预计如何? 鸦片战争的二号元凶:威廉·嘉道理 局域网内访问共享要密码 Win10怎么设置局域网共享密码访问 请问一下怎样查询工商银行信用卡申请进度 6、7、8、9是非自然数吗 怎么买来的熏牛肉是绿色的呀!有谁知道吗? 小孩腺样体肥大怎么检查 如何教育引导政法干部严守党的政治纪律和规矩 怎样吃的少又能增加饱腹感 怎样才能充满饱腹感? 我是做淘宝客服,现在怀孕,天天对着电脑屏幕有影响吗 家长教3-6岁幼儿识字时,有哪些好的办法可以让宝宝学的快呢? 仓鼠吃的泡芙能不能泡在水里给它吃? 济宁乾成机械设备有限公司怎么样? 有没有购买儿童游乐设备的 宫外孕怎么治疗? 宫外孕怎么治疗最好 空调防尘塞如何安装 想把牙齿变白,用什么方法比较好?? 上海踩踏事件死亡人平均年龄多大? 外滩踩踏事件是哪一年? 交换机的工作原理是怎样的? 高考古诗文默写少写了一个字怎么算分?是扣0.5还是1?扣0.5是不是就当做不扣了?额。。 东风标致301鼓风机继电器在什么位置 有案底可以当辅警吗 有案底可以做辅警吗 有案底能不能当辅警 有前科能当辅警吗 做风投的人都很有钱吗 风险投资家或机构一般希望在5年内将其资金翻6倍,相当于每年的投资回报率(ROI)? 台式机开机连续短促滴滴声数秒后,正常进入系统,每次开机都是,突然如此,昨天还好的。 惠普笔记本电脑CQ42在开机时发出滴滴滴的声音响了十多声然后就进了系统是怎么回事 我的世界让盔甲架上的剑碰到生物就死是怎么做 商品房办理产权证“转让手续费”应由谁交? uiautomatorviewer突然无法连接 求海岛奇兵5-8本最佳防御图(不要拿网上找的几年前的图来了)最好是自己的 海岛奇兵:求8本阵型,还有本人现在17级118杯,匹配总是匹配到9本以上20多极的玩家,而且大多数 河北经贸大学博士点都有什么专业 河北经贸大学有没有经济管理系专业 河北经贸大学都有那些专业?要详细的,谢谢! 陕西医保缴费的钱有多少入医保账户 女主是吸血鬼,里面的福娃喜欢吃奶黄包的小说叫什么 出差(原创小说)