【云原生 • Docker】Docker核心UTS Namespace原理实践
Docker
三大支柱核心技术:Namespace
、Cgroups
和UnionFS
,这节通过一个UTS Namespace
简单实践小案例,更加直观理解Namespace
资源隔离技术。
UTS Namespace
主要是用来隔离主机名和域名的隔离,它允许每个 UTS Namespace
拥有一个独立的主机名。例如我们的主机名称为 VM-4-14-centos
,使用 UTS Namespace
可以实现在容器内的主机名称为 container-docker
或者其他任意自定义主机名。
(相关资料图)
UTS Namespace案例实践
在进行UTS Namespace
案例实践之前,我们先来了解个关键指令:「unshare,运行一些与父级不共享某些名称空间的程序。」
root@node3:~# unshare --helpUsage: unshare [options] [...]Run a program with some namespaces unshared from the parent.Options:-h,--help显示帮助文本并退出。-i,-- ipc 取消共享IPC名称空间。-m,-- mount 取消共享安装名称空间。-n,-- net 取消共享网络名称空间。-p,-- pid 取消共享pid名称空间。另请参见--fork和--mount-proc选项。-u,-- uts 取消共享UTS名称空间。-U,--user 取消共享用户名称空间。-f,-将指定程序fork为取消共享的子进程,而不是直接运行它。这在创建新的pid命名空间时很有用。--mount-proc [=mountpoint]在运行程序之前,将proc文件系统挂载到mountpoint (默认为/ proc)。这在创建新的pid名称空间时很有用。这也意味着创建一个新的挂载名称空间,因为/ proc挂载否则会破坏系统上的现有程序。新的proc文件系统显式安装为私有文件(由MS_PRIVATE | MS_REC)。-r,-- map-root-user 仅在当前有效的用户和组ID已映射到新创建的用户名称空间中的超级用户UID和GID之后,才运行该程序。这样即使在没有特权的情况下运行,也可以方便地获得管理新创建的名称空间各个方面所需的功能(例如,在网络名称空间中配置接口或在安装名称空间中安装文件系统)。仅作为一项便利功能,它不支持更复杂的用例,例如映射多个范围的UID和GID。
我们通过一个实例来验证下 UTS Namespace
的作用。
1、首先我们使用 unshare
命令来创建一个 UTS Namespace
# unshare --uts --fork /bin/bash
创建好 UTS Namespace
后,宿主机shell
下lsns
列出namespace
信息,会发现最后一条就是我们使用unshare
创建了一个uts
类型的namespace
:
2、回到上步uts
命名空间shell
下,使用 hostname
命令设置一下主机名:
[root@VM-4-14-centos ~]# hostnameVM-4-14-centos[root@VM-4-14-centos ~]# hostname -b container-docker[root@VM-4-14-centos ~]# hostnamecontainer-docker
通过上面命令的输出,我们可以看到当前 UTS Namespace
内的主机名已经被修改为 container-docker
。
3、回到宿主机shell
下,查看一下主机的 hostname
:
[root@VM-4-14-centos ~]# hostnameVM-4-14-centos
可以看到主机的名称仍然为 VM-4-14-centos
,并没有被修改,这就是使用UTS Namespace
技术实现主机名隔离功能。
Docker原理验证
1、使用docker run
创建并运行一个Docker
容器:
[root@VM-4-14-centos ~]# docker run -d --name test-nginx --hostname docker-nginx nginx0fd5ec42923553ec2600c51ef4f119e4025ebf5adf13561b0e847cd816f332b7[root@VM-4-14-centos ~]# docker exec -it 0fd sh# hostnamedocker-nginx
❝--hostname指定docker容器的hostname,上面指定--hostname docker-nginx,通过docker exec指令进入到docker容器中,使用hostname查看Docker容器的hostname已被正确修改。❞
2、查看刚创建的Docker容器对应的宿主机PID
信息:
[root@VM-4-14-centos ~]# docker inspect -f {{.State.Pid}} test-nginx29424
或者通过lsns
指令也可以查看到我们刚才创建的Docker容器Namespace信息:
3、在宿主机shell
下使用nsenter
指令可以进入到Docker容器相同的Namespace下:
[root@VM-4-14-centos ~]# nsenter -t 29424 -u -n
说明:
-t:指定被进入命名空间的目标进程的pid,即指定Docker容器在宿主机上对应pid;-u:进入uts命令空间;-n:进入net命令空间。❝「nsenter:一个可以在指定进程的命令空间下运行指定程序的命令。」有很多image内部是没有bash的,所以我们docker exec是无法进入容器的,此时如果还想看一下容器内的情况,其实只需要想办法加入到容器对应的namespace就可以了。我们使用nsenter工具即可实现,该工具启动后会将自己加入到指定的namespace中,然后exec执行我们指定的程序(通常就是bash)。这个命令大家在容器网络调试下可能常用,比如在一些没有网络调试工具(
ip address
,ping
,telnet
,ss
,tcpdump
)的容器内利用宿主机上的命令进行容器内网络连通性的调试等等。❞
4、使用hostname
和ip addr
验证,和Docker容器在相同的UTS Namespace
和Network Namespace
下:
[root@docker-nginx ~]# hostnamedocker-nginx[root@docker-nginx ~]# ip addr1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever40: eth0@if41: mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:11:00:07 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 172.17.0.7/16 brd 172.17.255.255 scope global eth0 valid_lft forever preferred_lft forever
-
【云原生 • Docker】Docker核心UTS Namespace原理实践Docker三大支柱核心技术:Namespace、Cgroups和UnionFS,这节通过一个UTSNamespace简单实践小案例,更加直观理解Namesp
-
环球微速讯:端午节来历的故事简介_端午节有什么传说解答:1、端午节,也被称为五月五日,是中国三大重要节日之一,另外两个是中秋节和农历新年。2、这个节日的起源是中国古代有一
-
阳光英语周刊答案网站八上第四期_阳光英语周刊答案网站1、安娜在我的街区有一个动物园。2、我喜欢在那儿度过周末时光。3、我喜欢观看猴子们到处爬。4、猴子们有时打架,他们看起来
-
我喜欢的一位老师500字以上 我喜欢的一位老师|观天下今天来聊聊关于我喜欢的一位老师500字以上,我喜欢的一位老师的文章,现在就为大家来简单介绍下我喜欢的一位老师500字以上
-
焦点热文:空调制热与取暖器哪个省电?当然是空调省电了。一匹的空调电功率也就是在800w左右。工作一小时不足一度电。但是现在的小太阳和电热油汀等,其电功率一般都在1kw以上。在同
-
看热讯:抓实节前廉洁教育 风清气正过“五一”五一假期将至,为进一步落实全面从严治党要求,推动作风建设向纵深发展,国网福建南平市延平区供电公司纪检多措并举抓实党员干部节前廉洁教育
-
中国银行手机银行转账限额怎么修改_手机银行转账限额怎么修改-当前要闻1、交通银行手机银行单笔支付限额可以修改。2、出于对网络交易的安全以及其他方面的考虑,银行一般都会限定手机银行单笔交易限
-
华兴源创(688001):4月21日北向资金减持11.78万股4月21日北向资金减持11 78万股华兴源创。近5个交易日中,获北向资金减持的有3天,累计净减持3 51万股。近20个交易日中,获北向资金增持的有12
-
马斯克的“惊人发现”再次证实美国是全球最大网络窃密者_今日关注近日,美国社交平台推特的“掌门人”埃隆·马斯克在接受采访时称,美国政府能够读取所有推特用户的一切信息。 怎么回事?据美国《国会山...
-
天天微头条丨视导把脉明方向 精确指引促发展——郑州三中迎管城区教育局教学视导工作在春季的最后一个节气谷雨时节,郑州三中迎来了管城区教育局教学视导工作。为促进学校课程教学改革,提高教育教学质量;指导教师
-
ST泰禾: 目前尚无明确的官方信息。深圳院子目前处于复工推进状态ST泰禾(000732)04月21日在投资者关系平台上答复了投资者关心的问题。
-
公务员考试报名费多少钱 世界观天下1、2015年各地国家公务员考试报名费:河北:100元,参加专业科目145元内蒙古:120元吉林:两科95元 人,三科
-
铁路安全进校园 爱路护路保平安 ——安阳市南关小学开展铁路安全知识宣传为确保铁路运输安全畅通,提高青少年的铁路护路安全意识,2023年4月20日下午,新乡桥工段团委组织安阳线路车间3名路外安全宣传员来到安阳市南
-
喝蜜水会减肥吗 喝蜂蜜水能不能减肥 信息1、适量喝蜂蜜水可以帮助减肥。2、蜂蜜水中有一定的纤维成分,同时也能促进肠胃蠕动,进一步加强肠胃消化能力,使身体新陈代谢速度加快,促进
-
给力三部曲_关于给力三部曲介绍_环球即时1、《给力三部曲》是由中国内地最具人文色彩创作歌手、音乐人,同时也是最具社会影响力的视频播客之一“馒头”创作的反映现
-
股票行情快报:宝光股份(600379)4月21日主力资金净卖出385.14万元 每日短讯截至2023年4月21日收盘,宝光股份(600379)报收于10 44元,下跌2 52%,换手率1 13%,成交量3 73万手,成交额3944 2万元。
-
紧扣“地方特色” 更多优质旅游产品出炉 每日热点央视网消息:随着入境旅游市场快速复苏,各企业也抓住商机,设计推出更多中国特色鲜明、体验感十足的优质旅游产品。张源,是一名英语导游。去
-
孤芳自赏意思解释(孤芳自赏意思)孤芳自赏意思解释,孤芳自赏意思很多人还不知道,现在让我们一起来看看吧!1 含义:指故作清高,自我欣赏的人。也意味着脱离群众,自以为了不
-
中国星辰|载人航天背后都有哪些惊险时刻-当前热讯中国载人航天诞生于怎样的时代风云中?航天之旅背后都有哪些惊险时刻?属于中国人自己的空间站,又是如何在太空中建立起来的呢?在4月24日第8
-
环球快资讯丨cdr怎么调渐变_cdr金色渐变怎么调1、红色255绿色204蓝色0。本文到此分享完毕,希望对你有所帮助。
-
优化人才生态 助力企业发展石家庄市大郭街道开展人才政策宣讲活动 世界百事通为推动辖区企业人才队伍专业化建设,人才专员通过主动靠前,做优人才服务,以更加及时、更为精准、更有温度的为人才服务构建良好的引才氛围,
-
世界消息!硬科技是长达十年的投资主题!前海企业家峰会上,张维、李开复、李泽湘等最新发声4月20日,由基石资本主办的中国前海企业家峰会在深圳举行。论坛以“再谈创新之道,国家与企业的未来”为主题,围绕创新、人工智能、半导体...
-
大眼仔的英文名_大眼仔1、根据大路路单生成大眼仔路单。2、起始标示的参照点从大路的第二行第二列开始(第一列必须出现庄或闲,否则向后移一列参照
-
种植牙降价首日:公立三甲医院种植牙降至7000元【种植牙降价首日:公立三甲医院种植牙降至7000元】4月20日,北京种植牙降费落地首日,新京报贝壳财经记者走访北京口腔医院、北大口腔医院两家
-
三大协会联合抖音直播发起行业倡议4月19日,2023抖音直播行业生态大会在京举行。围绕内容治理、特殊人群保护、主播与机构管理等议题,中国网络视听节目服务
-
环球今日报丨多主力现身龙虎榜,信科移动涨停(04-20)上交所2023年4月20日交易公开信息显示,信科移动因属于日涨幅达到15%的前5只证券、有价格涨跌幅限制的日换手率达到30%的前五只证券而登上龙虎榜。
-
阿里P9下岗再就业 天天观察我是B站重度用户,在上面经常能够发现一些有趣的人和事。最近我开始留意到一位势头迅猛的职场博主的账号,title是前阿里产品P9,视频的内容主
-
英格兰和威尔士的哪些地区的购房者负担能力提升最大|快播报渐进式房屋所有权提供商Wayhome的新研究分析了英格兰和威尔士每个邮政编码的房产负担能力,以了解降温的住房市场如何
-
中基协:3月份新备案私募基金数量3534只 环比增长50.96%4月21日晚,中国证券投资基金业协会(以下简称“中基协”)发布2023年3月《私募基金管理人登记及产品备案月报》显示,截至2023年3月末,存...
-
上海集中供地:华发联合体19.19亿获西虹桥龙联路宅地 溢价8.98%_观焦点地块东至蟠东路,西至规划十一路,南至龙联路,北至天山西路,出让面积24805 2平方米,容积率2,建筑面积49610 4平方米,为住宅用地。