快讯| 教育| 外语| 辅导| 会计| 美容| 软件| 表演| 瑜伽| 针灸| 驾校| 书法| 音乐| 舞蹈| 司法| 留学| 演讲| 钢琴| 编程| 设计| 软件| 美发| 考研| 养生| 公务员| 电商
 
首页 » 培训资讯 » 辅导 » 5分钟快速了解Docker的底层原理

5分钟快速了解Docker的底层原理

放大字体  缩小字体 时间:2021-01-28 17:26    热度:185
本文转载自微信公众号「小姐姐味道」,作者小姐姐养的狗 。转载本文请联系小姐姐味道公众号。一位同学曾给我打比方:宿主机就好。。。

 

本文转载自微信公众号「小姐姐味道」,作者小姐姐养的狗 。转载本文请联系小姐姐味道公众号。 

一位同学曾给我打比方:宿主机就好比一间大房子,docker把它成了N个小隔断。在这些小隔断之间,有独立的卫生间、小床、电视...

麻雀虽小,五脏俱全,这个比喻非常的贴切。Linux提供了非常全面的隔离机制,使得每个小隔间互不影响。即使隔壁小间满室春光,我的小房间一样的冷清,对我毫无影响。

Docker能实现这些功能,依赖于chroot、namespace、cgroup等三种老技术。我们本篇文章,就先聊一下namespace方面的东西。毕竟隔离是容器的第一要素。

Linux的内核,提供了多达8种类型的Namespace。在这些独立的Namespace中,资源互不影响,隔离措施做的非常好。

1. 8种类型

我们先来看一下,Linux都支持哪些Namespace。可以通过unshare命令来观察到这些细节。在终端执行man unshare,将会出现这些Namespace的介绍。

Mount(mnt) 隔离挂载点 Process ID (pid) 隔离进程 ID Network (net) 隔离网络设备,端口号等 Interprocess Communication (ipc) 隔离 System V IPC 和 POSIX message queues UTS Namespace(uts) 隔离主机名和域名 User Namespace (user) 隔离用户和用户组

另外,Linux在4.6版本,5.6版本,分别加入了cgroups和Time两种隔离类型,加起来就有8种。

Control group (cgroup) Namespace 隔离 Cgroups 根目录 (4.6版本加入) Time Namespace 隔离系统时间 (5.6版本加入)

2. 1个例子

通过unshare命令,可以快速建立一些隔离的例子,我们拿最简单直观的pid namespace来看一下它的效果。

众所周知,Linux进程号为1的,叫做systemd进程。但在Docker中,我们通过执行ps命令,却只能看到非常少的进程列表。

执行下面的命令,进入隔离环境,并将bash作为根进程:

unshare --pid --fork --mount-proc /bin/bash 

效果如图所示。可以看到,我们的bash,已经成为了1号进程,而宿主机和其他隔离环境的进程信息,在这里是不可见的。

先在隔离环境中,执行sleep 1000。再开一个终端,在宿主机上执行pstree,我们将会看到这个隔离环境的进行信息。

接下来,在宿主机上,把sleep对应进程的命名空间信息,和宿主机的命名空间信息作一下对比。可以看到,它们的pid namespace,对应的数值是不同的。

下面给出其他namespace的实验性命令,你可以实际操作一下。

3. 试验一下

unshare --mount --fork /bin/bash 

创建mount namespace,并在每个不同的环境中,使用不同的挂载目录。

unshare --uts --fork /bin/bash 

uts可以用来隔离主机名称,允许每个namespace拥有一个独立的主机名,你可以通过hostname命令进行修改。

unshare --ipc --fork /bin/bash 

IPC Namespace 主要是用来隔离进程间通信的。Linux的进程间通信,有管道、信号、报文、共享内存、信号量、套接口等方式。使用了IPC命名空间,意味着跨Namespace的这些通信方式将全部失效!不过,这也正是我们所希望的到的。

unshare --user -r /bin/bash 

用户命名空间,就非常好理解了。我们可以在一个Namespace中建立xjjdog账号,也可以在另外一个Namespace中建立xjjdog账号,而且它们是相互不影响的。

unshare --net --fork /bin/bash 

net namespace,这个就非常有用了。它可以用来隔离网络设备、IP 地址和端口等信息。

可以看到,通过各种Namespace,Linux能够对各种资源进行精细化的隔离。Docker本身也是一个新瓶装旧酒的玩具。Docker的创新之处,在于它加入了一个中央仓库,并封装了很多易用的命令。

你可能会发现,到目前为止,我们并没有对Cpu和内存的资源使用进行隔离,也没有对应的Namespace来解决这些问题。

资源限制的功能,是使用Cgroups进行限额配置来完成的,和Namespace没什么关系。我们将在后面的文章,介绍Cgroups这项技术。

最后,附上Docker的一张生命周期图。来源(http://docker-saigon.github.io/post/Docker-Internals/ )。有需要的同学可以加我的好友获取。

Docker发展到现在,应用工具链已经非常成熟了,很多同学已经驾轻就熟,如果你对容器技术非常感兴趣,不如多看一下最底层的原理。这样,不管是谷歌推自己的容器,还是继续使用docker,都能快速把它掌握。

作者简介:小姐姐味道 (xjjdog),一个不允许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。我的个人微信xjjdog0,欢迎添加好友,进一步交流。

 

关于5分钟快速了解Docker的底层原理的要点介绍,希望对大家了解5分钟快速了解Docker的底层原理有所帮助,如有侵权,联系我们jingshangbao@foxmail.com。
 
你可能感兴趣:
 
微软:Xbox Series X/S 的 FPS Boost 功能无需额外开发,部分游戏支持
微软:Xbox Series X/S 的 FPS Boost 功能无需

2021-02-22

22日消息近日,微软为 Xbox Series X/S 主机推出了 FPS Boost 功能,该功能可有效提高

微软下月将为 Microsoft Word 加入文本预测功能
微软下月将为 Microsoft Word 加入文本预测功能

2021-02-22 Microsoft Word

22日消息据 Mspoweruser 报道,微软将在下个月为 Windows 版Microsoft Word 提供文本

2021 MWC 上海前瞻:手机黑科技 5G 应用加速落地!
2021 MWC 上海前瞻:手机黑科技 5G 应用加速落

2021-02-22 2021 MWC 上海

因疫情而停办了一年的 MWC 上海展会将于 2021 年 2 月 23-25 日重磅回归线下,亮相上

卢伟冰:25 日发布新品不止手机和笔记本!
卢伟冰:25 日发布新品不止手机和笔记本!

2021-02-22 卢伟冰

22日消息众所周知,Redmi K40 系列与 RedmiBook Pro 将于 2 月 25 日发布,目前已经透

澳大利亚全面宣传新冠疫苗接种计划:Facebook 被排除在外!
澳大利亚全面宣传新冠疫苗接种计划:Facebook

2021-02-22 Facebook

22 日早间消息,据报道,澳大利亚政府周日承诺对推广新冠疫苗展开宣传,但由于 Facebo

工信部:春节假期 7 天,移动互联网流量达到 357.3 万 TB
工信部:春节假期 7 天,移动互联网流量达到 35

2021-02-21

移动互联网流量

荣耀终端有限公司正式加入软件绿色联盟

2021-02-21 软件绿色联盟

21日消息从软件绿色联盟获悉,近日,荣耀终端有限公司正式加入软件绿色联盟。双方将在

美一架波音客机引擎起火:天空飘下碎片雨

2021-02-21 美一架波音客机

21日消息据环球网援引 CNN 报道,当地时间 2 月 20 日,一架美联航 UA328 航班客机起

300 枚以太坊买下 “彩虹猫”数字艺术品,约 60 万美元
300 枚以太坊买下 “彩虹猫”数字艺术品,约 60

2021-02-21 300 枚以太坊

21日消息昨日,一件特殊的 NFT(不可替代令牌)数字艺术品已被拍卖,该艺术品来自克里

ID Software 创始人建言:厂商应该略过中介商直接销售 PS5/XSX 和新显卡
ID Software 创始人建言:厂商应该略过中介商直

2021-02-21

21日消息作为世界上首款 FPS 游戏《毁灭战士》的开发商,Id Software 的动向一向引人

 
热点图文
微软:Xbox Series X/S 的 FPS Boost 功能无需额外开发,部分游戏支持

微软:Xbox Series X/S 的 FPS Boost 功能无需额外开发,部分游戏支持

微软下月将为 Microsoft Word 加入文本预测功能

微软下月将为 Microsoft Word 加入文本预测功能

2021 MWC 上海前瞻:手机黑科技 5G 应用加速落地!

2021 MWC 上海前瞻:手机黑科技 5G 应用加速落地!

卢伟冰:25 日发布新品不止手机和笔记本!

卢伟冰:25 日发布新品不止手机和笔记本!

澳大利亚全面宣传新冠疫苗接种计划:Facebook 被排除在外!

澳大利亚全面宣传新冠疫苗接种计划:Facebook 被排除在外!

工信部:春节假期 7 天,移动互联网流量达到 357.3 万 TB

工信部:春节假期 7 天,移动互联网流量达到 357.3 万 TB

300 枚以太坊买下 “彩虹猫”数字艺术品,约 60 万美元

300 枚以太坊买下 “彩虹猫”数字艺术品,约 60 万美元

ID Software 创始人建言:厂商应该略过中介商直接销售 PS5/XSX 和新显卡

ID Software 创始人建言:厂商应该略过中介商直接销售 PS5/XSX 和新显卡

 
通学网 — 学校教育机构培训门户 网站地图 | 特惠服务 | 关于我们 | 人才招聘 | 联系我们 | 法律声明