微服务重要的容器技术Docker的核心实现技术

Docker 作为一种容器虚拟化技术,应用了操作系统的多项底层支持技术。其中的技术层包含Linux操作系统的命名空间Namespace,控制组,联合文件系统,Linux网络虚拟化。

命名空间

命名空间在Linux中是一个强大的特性,并且容器Docker也利用该特性,在容器上建立属于自己的命名空间不与其他容器进行互相影响。

进程命名空间。

在Docker中利用了Linux内核中的PID空间技术,并且在不同的PID命名空间上,进程都是独立的。不同的空间下可以有相同的PID。该层级是一个树状结构,在创建新的PID会跟原先形成一个层级父子关系。
在这里Docker 利用Namespace技术来修改进程视图。
当利用该技术创建进程,在内部进程是一个编号,但是在外部Linux系统上还是另外的系统进程,这是一个特殊的进程。
在Linux系统中调用clone函数创建一个进程,并且指定CLONE_NEWPID参数,创建一个全新的进程空间。
障眼法的操作。表面上进程还是原来的参数,但是在内部进程编号与外部的不同。
这就进行了包装隔离。

网络命名空间

进程命名空间让各个进程之间进行相互隔离,但是网络端口还是共享的本地的。

然后通过网络命名空间我们可以实现网络之间的隔离,就跟进程之间形成隔离一样。

在这个空间里面有完全独立的网络协议栈。包含了各个设备接口,IPV4和IPV6协议,IP路由表,防火墙规则,sockets等。

Docker采用的是虚拟网络设备方式,将不同的网络设备连接到一起。默认是与本地主机上的docker0网卡连接到一起。

IPC命名空间

进程之间怎么交互,在Linux里面采用的是IPC的方式 包含信号量,消息队列,共享内存。
PID 命名空间可以与IPC 命名空间组合使用,允许进程间的交互。不同空间内的进程无法交互

挂载命名空间

将一个进程放入到特定的目录执行,每个命名空间内的进程看到的文件目录彼此隔离。

UTS命名空间

该空间允许每个容器拥有独立的主机名和域名,从而虚拟出一个独立的主机名和网络空间。

用户命名空间

每个容器都拥有不同的用户和用户组,可以在容器内使用特定的内部用户参与执行程序,而非本地系统存在的用户。可以使用隔离的用户名空间,提高安全性,避免容器内进程获取到额外的权限。

控制组

控制组是Linux 内核的一个特性。主要是用来控制分配到容器的资源,才能避免多个容器同事运行时对宿主机系统的资源竞争。
控制组提供对容器的内存,CPU,磁盘IO等资源进行管理,并且针对不同的设计情况,提供了统一的接口,从而控制单一进程。

资源限制

首先我们对于每个容器需要使用的内存大小有限制,如果超过固定的大小或者超过使用限制的大小,就出现异常情况。

优先级

通过控制优先级来让一些组内得到更多的CPU ,内存,磁盘IO资源等等。

资源审计

用来统计系统把多少资源用到适合的目的上。

隔离

隔离命令空间,这样一个组不会看到另外一个组内的进程,网络连接和文件系统。

控制

挂起、回复和重启等操作。
当然我们在使用容器的时候也可以在启动的时候指定资源的大小,包含容器的cpu,内存等等信息。

联合文件系统

联合文件系统是一个轻量级的高性能分层文件系统,支持将文件系统中的修改信息作为一次提交,并层层叠加,同事将不同的目录挂载在同一个虚拟文件系统下,应用看到的是挂载的最终结果。

并且当Docker文件系统进行修改后,才去的是增量更新的方式,采用更新也是一种轻量级的操作。

我们在一个镜像上进行修改,则是创建的一个新的层级,不需要更换原先的内容只需要做到新增即可

Docker存储

通过插件的方式来支持多种文件系统后端。AUFS 文件为每一个目录设置只读,读写,写出权限。也有分层的概念,进行增量更新。
Docker镜像就是由多个文件层级构成,我们下载的时候不同的id就代表一个层级。

对于Docker景象来说内容是不可修改的,只能读取。内容更新操作会发生在可读写层。我们一般建议容器修改的数据通过 volume方式进行挂载。不修改镜像内的数据。

多种文件系统

AUFS ,OverlayFS,Device Mapper,btrfs,vfs,zfs,等文件系统,但是现在使用最广泛的是AUFS 和Device Mapper的应用最为广泛,也想多成熟,但是长期来看OverlayFS性能更好些。

Linux 网络虚拟化

Docker中采取的是虚拟的网络接口,虚拟的网络接口特点是转发效率高。这是因为直接通过内核进行数据复制达到数据转发的。无需通过外部的网络设备进行交换。

网络创建过程

  1. 创建一对虚拟接口,分别放到本地主机和新容器的命名空间里面。
  2. 本地接口连接到docker0网桥上,当然这里可以更改。并且赋给一个veth开头的名字。
  3. 容器端的虚拟接口命名为veth0 ,只在容器中可见。
  4. 从网桥可用地址段中获取一个空闲地址分给容器的eth0,默认路由网关为内部接口的docker0的地址

上面这些就是简单的概念性知识介绍,了解这些内容,能帮助我们在以后工作的时候进行docker容器的调整。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容

  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,418评论 15 147
  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,404评论 0 120
  • 五月一十三日上午,我接到同在武汉读书的堂哥的电话,奶奶走了,而在五一假期,我才刚刚回去看过她,还是好好的,一...
    caf1阅读 236评论 0 0
  • 慧语禅心:心境平常得安稳 事在人为是一种积极的人生态度,随遇而安是一种乐观的处世妙方,顺其自然是一种达观的生存之道...
    xcy无名阅读 115评论 0 0