您现在的位置是:热点 >>正文
5分钟快速了解Docker的底层原理
热点55923432人已围观
简介...
本文转载自微信公众号「小姐姐味道」,作者小姐姐养的狗 。转载本文请联系小姐姐味道公众号。
一位同学曾给我打比方:宿主机就好比一间大房子,docker把它成了N个小隔断。在这些小隔断之间,有独立的卫生间、小床、电视...
麻雀虽小,五脏俱全,这个比喻非常的贴切。Linux提供了非常全面的隔离机制,使5分得每个小隔间互不影响。即使隔壁小间满室春光,我的小房间一样的冷清,对我毫无影响。
Docker能实现这些功能,依赖于chroot、namespace、cgroup等三种老技术。我们本篇文章,就先聊一下namespace方面的东西。毕竟隔离是容器的第一要素。
Linux的内核,提供了多达8种类型的Namespace。在这些独钟快立的Namespace中,资源互不影响,隔离措施做的非常好。
1. 8种类型
我们先来看一下,Linux都支持哪些Namespace。可以通过unshare命令来观察到这些细节。在终端执行man unshare,将会出现这些Namespace的介绍。
Mount(mnt) 隔离挂载点 Process ID (pid) 隔离进程 ID Ne速了twork (net) 隔离网络设备,端口号等 Interprocess Communication (ipc) 隔离 System V IPC 和 POSIX message queues UTS Namespace(uts) 隔离主机名和域名 User Namespace (user) 隔离用户和用户组
另外,Linux在4.6版本,5.6版本,分别加入解D了cgroups和Time两种隔离类型,加起来就有8种。
Control group (cgroup) Namespace 隔离 Cgroups 根目录 (4.6版本加入) Time Namespace 隔离系统时间 (5.6版本加入)
2. 1个例子
通过unshare命令,可以快速建立一些隔离的例子,我们拿最简单直观的pid namespaceoc来看一下它的效果。
众所周知,Linux进程号为1的,叫做systemd进程。但在Docker中,我们通过执行ps命令,却只能看到非常少的进程列表。
执行下面的命令,进入隔离环境,并将bash作为根进程:
unshare --pid --fork --mount-proc /bin/baskeh
效果如图所示。可以看到,我们的bash,已经成为了1号进程,而宿主机和其他隔离环境的进程信息,在这里是不可见的。
先在隔离环境中,执行sleep 1000。再开一个终端,在宿主机上执行pstree,我们将会看到这个隔离环境的进行信息。
接下来,在宿主机上,把sleep对应进程的命名空间信息,和宿主机的命名空间信息作r的一下对比。可以看到,它们的pid namespace,对应的数值是不同的。
下面给出其他namespace的实验性命令,你可以实际操作一下。
3. 试验一下
unshare --mount --fork /bin/bash
创建mount namespace,并在每个不同的环境中,使用不同底层的挂载目录。
unshare --uts --fork /bin/bash
uts可以用来隔离主机名称,允许每个namespace拥有一个独立的主机名,你可以通过hostname命令进行修改。
unshare --ipc --fork /bin/bash&n原理bsp;
IPC Namespace 主要是用来隔离进程间通信的。Linux的进程间通信,有管道、信号、报文、共享内存、信号量、套接口等方式。使用了IPC命名空间,意味着跨Namespace的这些通信方式将全部失效!不过,这也正是我们所希望的到的。
unshare --user -r /bin/bash5分
用户命名空间,就非常好理解了。我们可以在一个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-I解Dnternals/ )。有需要的同学可以加我的好友获取。
Docker发展到现在,应用工具链已经非常成熟了,很多同学已经驾轻就熟,如果你对容器技术非常感兴趣,不如多看一下最底层的原理。这样,不管是谷歌推自己的容器,还是继续使用docker,都能快速把它掌握。
作者简介:小姐姐味道 (xjjdog),一个不允许程序员走弯路的公众号。oc聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。我的个人微信xjjdog0,欢迎添加好友,进一步交流。
Tags:
相关文章
大手笔!微软本财年将斥资800亿美元建设AI数据中心
热点1月5日消息,据外媒报道,微软计划在截至今年6月份的当前财年为人工智能技术数据中心投资800亿美元,继续其向基础设施投入巨资的战略。 微软总裁布拉德·史密斯周五在一篇博客文章中披露了这一数字,到202...
【热点】
阅读更多因环境问题遭政府反对 Meta叫停荷兰数据中心建设计划
热点3月30日消息,据国外媒体报道,Facebook母公司Meta表示,由于面临来自政府的反对,公司将暂缓在荷兰建立一个大型数据中心的计划。 据悉,一周前,荷兰参议院通过一项动议,要求首相马克·吕特(Ma...
【热点】
阅读更多标签: 鸿蒙智行 问界M9 置购税补贴 新能源汽车
热点云梦级12月3日云梦级消息,鸿蒙智行问界 2 日官宣了问界 M9 / M8 / M7 2026 款 / M5 购置税补贴方案,考虑到部分消费者担心因车辆跨年交付可能受到购置税政策变动的影响,鸿蒙智行将...
【热点】
阅读更多
热门文章
最新文章
友情链接
- 标签: 康师傅
- https://www.symatoys.com/search.html?ID=UyMD6aO58bPrJvQAB1I0N69KzJBZeNPC&keyword=谷歌霸屏服务【tg:seogoogle987】,ATh
- https://www.roblox.com/discover/?cat=107&Keyword=谷歌霸屏服务【tg:seogoogle987】,FVg
- https://www.smics.com/tc/site/search?token=谷歌霸屏服务【tg:seogoogle987】,XR0
- https://blvdseafood.com/?s=谷歌霸屏服务【tg:seogoogle987】lN1
- https://www.teacherspayteachers.com/Browse/Search:谷歌霸屏服务【tg:seogoogle987】,k7B
- https://www.hanbat.ac.kr/search/front/Search.jsp?qt=谷歌霸屏服务【tg:seogoogle987】Ktu
- https://www.teamlab.art/es/?submit=谷歌霸屏服务【tg:seogoogle987】,2Zo
- https://www.youm7.com/Home/Search?allwords=谷歌霸屏服务【tg:seogoogle987】,m4B
- https://www.nctsn.org/search?cat=191&query=谷歌霸屏服务【tg:seogoogle987】,aXD
- https://xehay.vn/tim-kiem/=谷歌霸屏服务【tg:seogoogle987】,bvU
- https://www.kubb-tool.bfs.admin.ch/en/search?action=CHECK&q=谷歌霸屏服务【tg:seogoogle987】,PYM
- https://www.nuovabai.it/catalogsearch/result/?action=SEARCH&q=谷歌霸屏服务【tg:seogoogle987】,JeY
- https://www.manga-news.com/index.php/recherche/?q=谷歌霸屏服务【tg:seogoogle987】,3OR
- https://www.sic-info.org/en/?s=谷歌霸屏服务【tg:seogoogle987】,nGK
- https://www.impactpool.org/search/?type=79&q=谷歌霸屏服务【tg:seogoogle987】QAi
- https://www.temu.com/search_result.html?search_key=谷歌霸屏服务【tg:seogoogle987】Keb
- https://www.goodreads.com/quotes/tag/谷歌霸屏服务【tg:seogoogle987】8yV
- https://www.sogou.com/web?query=谷歌霸屏服务【tg:seogoogle987】,5ia
- https://www.safetv.go.kr/base/search/view?searchWord=谷歌霸屏服务【tg:seogoogle987】WZk
- https://www.parriscues.com/catalogsearch/result/?q=谷歌霸屏服务【tg:seogoogle987】,XL3
- https://www.solerpalau.com/en-en/catalogsearch/result/?q=谷歌霸屏服务【tg:seogoogle987】,D9V
- https://www.voices.com/talents/search?keywords=谷歌霸屏服务【tg:seogoogle987】,h3N
- https://www.mynextmove.org/find/search?s=谷歌霸屏服务【tg:seogoogle987】,nUd
- https://yokohama-oht.com/?action=CHECK&s=谷歌霸屏服务【tg:seogoogle987】,Yu7
- https://www.libros.unam.mx/catalogsearch/result/?cat=37&dir=asc&format=20&lit=20&manufacturer=3230&mode=list&order=year_edition&q=谷歌霸屏服务【tg:seogoogle987】,TA3
- https://www.roberthalf.com/us/en/jobs/all/谷歌霸屏服务【tg:seogoogle987】evC
- https://www.u-bourgogne.fr/?cat=117&s=谷歌霸屏服务【tg:seogoogle987】,3xN
- https://www.resopal.de/catalogsearch/result/?action=SEARCH&q=谷歌霸屏服务【tg:seogoogle987】,jGu
- https://www.nyif.com/catalogsearch/result/?q=谷歌霸屏服务【tg:seogoogle987】,Igy
- https://www.sic-info.org/vi/?s=谷歌霸屏服务【tg:seogoogle987】,MXJ
- https://www.remit.co.jp/ne/?s=谷歌霸屏服务【tg:seogoogle987】,Wcu
- https://www.jusoen.com/addreng.asp?p1=谷歌霸屏服务【tg:seogoogle987】rnV
- https://www.woorden.org/spreekwoord.php?woord=谷歌霸屏服务【tg:seogoogle987】,TQ2
- https://www.teamlab.art/it/?submit=谷歌霸屏服务【tg:seogoogle987】,YwV
- https://www.openspaceinstitute.org/search?q=谷歌霸屏服务【tg:seogoogle987】,kSo
- https://www.yidian51.com/taobao/谷歌霸屏服务【tg:seogoogle987】,BtQ
- https://www.revere.org/search?action=SEARCH&q=谷歌霸屏服务【tg:seogoogle987】,jxL
- https://www.quarterjacksurgery.co.uk/?AT=3rBy&s=谷歌霸屏服务【tg:seogoogle987】,EcC
- https://www.tailoy.com.pe/catalogsearch/result/?q=谷歌霸屏服务【tg:seogoogle987】,LkZ
- https://www.rhymezone.com/r/rhyme.cgi?typeofrhyme=oldrel&loc=nojs&Word=谷歌霸屏服务【tg:seogoogle987】,mXe
- https://www.pmindia.gov.in/en/?s=谷歌霸屏服务【tg:seogoogle987】,KE6
- https://www.klatreverden.no/search?q=谷歌霸屏服务【tg:seogoogle987】,Qfs
- https://www.whatsonstage.com/search?cat=64&term=谷歌霸屏服务【tg:seogoogle987】,8r9
- https://nicolazzi.it/en/?s=谷歌霸屏服务【tg:seogoogle987】,Kld
- https://m.shoppinghow.kakao.com/m/search/q/谷歌霸屏服务【tg:seogoogle987】Fus
- https://www.unclefossil.com/search/谷歌霸屏服务【tg:seogoogle987】gad_source=1&gclid=Cj0KCQjw_-GxBhC1ARIsADGgDjsNKplUXa2F6YGlHBK2sHDQ88cgsJBb05DyO99TV9jNq_cT0kGMqyQaAgHQEALw_wcB
- https://www.duksung.ac.kr/search/front/Search.jsp?qt=谷歌霸屏服务【tg:seogoogle987】0nh
- https://www.dba.dk/soeg/?soeg=谷歌霸屏服务【tg:seogoogle987】WFN
- https://www.sebson.de/en/search?query=谷歌霸屏服务【tg:seogoogle987】,aXf
- https://www.kores.com/?s=谷歌霸屏服务【tg:seogoogle987】,w8J