00:00
大家好,欢迎大家继续收看上硅谷的Linux云计算视频。我是万洋老师。这节课呢,我们去学习一下docker的网络管理。那这三的课程中呢,我们可以了解do到底怎样去进行所谓的数据的交流。还是非常重要的,对吧,便于我们理解doc的使用过程。那首先呢,这张呢,内容呢,我们会分为这么几个片段,第一个doer的网络通讯。也就是他到底是怎样与外界通讯,怎样与内界通讯容器,容器之间怎样通讯,对吧?这都是我们需要去解决的问题。第二个。Dota的网络模式可以进行怎样的修改,以及进行怎样的调整?第三个给大家演示一下,我们怎样去隔离,或者是怎样去通讯。那首先呢,我们一个一个去看,我们先看第一个刀客的网络通讯。首先要我们先看这么一张图。
01:01
这张图呢,就比较好的涵盖了我们doer怎样的通讯方式。其实刀想通讯的话,无外乎解决这么几个问题,对吧?第一个。第一个容器与容器之间。第二个容器与外部网络,或者容器访问外部网络。第三个,外部网络访问。容器。只要这三个问题解决了,其实我们容器的网络是不是基本上就解决了,对吧,好。那这张图呢,可以很好的解决这么几这么三个问题,我们一个去看。首先。对于我们的本机,只要安装完了do以后呢,会出现这么一个网络环境,第一个就是本机会有一个网卡。
02:00
这个肯定都有对吧,至少一块,甚至我们还有两块呢,对吧,好。第二个就是会出现一个刀客零。那很多人可能没有注意看自己的一部命令。我们一旁一个看一下。看到了吗?Dockling。我想表达的是什么呢?刀客林,你可以把它理解为是一个。交换机。我们把它叫做网桥,你可以把它理解为是一个软件实现的交换机。那交换机有什么作用?交换不同容器之间的数据交流。并且这个交换机呢,一旦创建以后,会创建一个叫做namespace的东西。叫network namepace,全名叫做网络民政空间。
03:00
那也就是这里的VETH。不同的网络名字空间呢,会相互隔离。并且会出现两端,一端固定在我们的容器内部。成为虚拟网卡。Doer PS-A,我们看一下dock。EE。杠it。然后我们进N,我们看一下并下的败,直接败。陛下的半血吧。靠if config。没有这个命令对吧。IP。Show。批命令没有?那我就退出吧,这个看不了了。也就意味着我们在容器里面会看到有一个叫ETH0的网卡,这个应该都没忘对吧?好,那并且这是一端,另一端负责在哪里看这里。看这里。只要我们是一个容器,多一个容器,这里会出现多一个VETH。
04:00
这也就是我们所谓的。另一端。也就是。分为两端,一端在我们的容器里,一端在我们的。本机里做一个联通作用。并且网络名的命名空间呢,会隔离,我们将我们的网络给隔离开来,各用各的。那这样的话就实现了隔离。以及怎么跟本机之间进行交互。因为这里已经有了大林这个交换了呀,对吧,那既然有交换了,那咱俩是不是就能通讯了。听明白了吗?咱俩就通讯了。展览通讯就是解决我们的容器与容器之间的通讯,通过我们的刀克林的网桥去解决的。没问题吧?那第二部分是要解决怎么去跟外网通讯,以及外网怎么跟内网通讯。那在这里我们看一下有两条规则,第一个是容器访问外部网络。
05:03
IPS-t nott-a PS root-S 172.17.0.0-16-o do,零杠JMSQ,这是不是典型的是一个S转换?也就意味着容器访问外部网络的方式其实借助的是防火墙的ST规则。那如果容器想访问,如果外部网络想访问容器呢?我们只要加一个杠P8080,这里就会出现这么两条规则。这是什么?UT。所以就这么几句话,几张图,我们就可以解决问题了,对吧,首先。容器与容器之间通过PA进行隔离。隔离为两端,一端放在我们的容器内部充当ET联网卡,另一端放在我们的数组机上进行联通。然后不同容器之间通过我们的。Do客林望桥进行通讯,所以你会发发现在这里DO0它的地址为多少?172.17.0.1对吧,我们复制一下,然后我们dock inspect,我们看一下,看下谁呢?看一下我们的N。
06:14
看他的网络网关172.19.0.1,为什么会出现幺九呢?刀可以卖。啊,刀啊,衣服卡背吧。往上翻。为什么会出现幺九呢?原因是什么呢?这里他在创建我们的。创建我们的呃,叫什么哈勃的时候,他自己去重新用了一个网络名人空间。所以他现在会分配一个新的地址为幺九。那这个其实不是我想看到的结果,对吧,那我给大家创建一个吧,Do杠杠name。呃,就叫tomcat,我们什么都不加了,杠D方的后台运行tomcat冒号V1.0。启动成功了对吧,好,那dock inspect。
07:04
Tomcat。冒号V1.0,我们看一下。好,我们看一下getaway网关,172.17.0.1,这是我之前复制的网关,对吧,那这样是不是就匹配了。刚才那个问题呢,我们在第三节课的时候,你就知道为什么现在还看不懂,对吧。没关系,等会就能看到,好,那这一个getaway呢,你会发现,诶跟我们的网关是不是一样了,所以还是那句话,它是通过这种交换的方式,如果处于同一个网络名字命名空间内部的话,会这样去。做交流需要大家注意一下,那name space,我们刚才一直在强调,对吧,叫network space叫网络名的命名空间。其实名的命名空间在我们的利用内核里,它是一直存在的。并且操作系统本身其实已经有了一个名字命名空间。网络名字命名空间。
08:03
那所有的一些网络配置都会在同一个网络名的命名空间下,所以它不会隔离。但是do呢,用了另一套另一套的网络密的密闭空间,所以它就会与本机的网络进行隔离。你可以这样理解,Namespace就是做我们的隔离的。但是namespace有很多种。在这里给大家演列出来了,第一个叫us。I PC PID network热。Us代表是主机名和域名的隔离。也就意味着,如果我们再去创一个网。Us的名字命名空间。那只要是不同于本机的,那这样的话,我们相当于就有两套不同的主机名和域名。包括IPC叫信息量、消息队列共享、内存隔离。PID进程编号隔离,也就意味着我在容器内部如果采用了新的一套PID的network的啊pace的话,我就可以有我自己的零号进程。
09:02
能理解我意思吗?那network网络名字秘密空间,我们刚才已经见到过了,对吧,他就是隔离当前的网络的mount挂载点,名字命密空间挂载点。民的空间。那挂点名的空间什么意思呢?我们可以有自己的一套根文件系统,我们在容器内部是不是它也有自己的根啊?在外面也有自己的根,到底谁是根呢?通过它去隔离不同的名字,命名空间内部有不同的根。U用户和用户组隔离。但需要注意一下,这也就是为什么我们说在圣诺安六上do当时实现不了的原因。看内核版本。在2.62.4内核的时候,我们这几个功能都实现了,但是在U的最后一个隔离级别需要3.8内核。这就是我们今天说为什么在圣罗安市。六上之前用不了的其中一部分原因。那这个稍微了解一下就可以了。那接下来我们继续好好看。那其实在刚才呢,我们已经把我们的网络的通讯方案已经给大家解释过了,对吧,铜容器之间。
10:06
或者叫同一个网络名字命名空间内部的容器之间的交流,数据走的是我们的。刀客林网桥,或者是走的是网桥对吧。如果想跟外界通讯,走的是我们的S拉的转换,如果是外部,想跟内部通讯,走的是我们DNA的转换。这是你需要知道的东西。那这节课我们就先讲到这里,我们下节课再见。
我来说两句