【云原生 • Docker】Docker核心UTS Namespace原理实践|视焦点讯
2023-04-21 16:15:15 来源:腾讯云
【云原生 • 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原理实践|视焦点讯
-
北京西城:结对共建 筑牢金融风险“防火墙”
-
如何用玉米粒制作玉米粉
-
遵义市各学校积极开展“世界读书日”主题活动|环球快资讯
-
每日关注!一季度我国船舶工业三项指标世界第一
-
最新资讯:登《自然》顶刊!我国科学家研发出新型超滤分离法“降伏”核废料镅,极大提高了分离效率
-
霍慧文在中阳矿区调研安全生产 环球观速讯
-
热消息:顺德区气象台发布雷雨大风黄色预警【III级/较重】
-
数说中国·首季经济形势丨我国加力扩种大豆油料 大豆意向种植面积稳中略增 全球资讯
-
苹果花开授粉忙 全球速看料
-
“读懂中国·湾区对话”专题论坛在广州举行
-
BRTV文艺《笑动剧场》“天要下雨”与“娘要嫁人”有啥关系? 环球快资讯
-
第133届广交会一期展览呈现五大亮点-环球速看料
-
医学技术类专业有哪些_医学技术-通讯
-
云南这个边境管理大队联合多部门开展普法宣传活动
-
西湖大学与杜克大学签署本科生访学协议
-
湖人助教疑讽狄龙:不要责怪小丑 问问你自己为什么去马戏团
-
焦点短讯!机场巴士怎么翻译_机场巴士怎么买票
-
世界热议:古因茶而兴,今以茶富民——赤壁古镇羊楼洞走笔
-
恒指收跌2.39% 汽车股领跌
推荐内容
- 【云原生 • Docker】Docker核心UTS Namespace
- 北京西城:结对共建 筑牢金融风险“防火墙”
- 如何用玉米粒制作玉米粉
- 遵义市各学校积极开展“世界读书日”主题活动|环
- 每日关注!一季度我国船舶工业三项指标世界第一
- 最新资讯:登《自然》顶刊!我国科学家研发出新型
- 霍慧文在中阳矿区调研安全生产 环球观速讯
- 热消息:顺德区气象台发布雷雨大风黄色预警【III
- 数说中国·首季经济形势丨我国加力扩种大豆油料
- 苹果花开授粉忙 全球速看料
- “读懂中国·湾区对话”专题论坛在广州举行
- BRTV文艺《笑动剧场》“天要下雨”与“娘要嫁人”
- 第133届广交会一期展览呈现五大亮点-环球速看料
- 医学技术类专业有哪些_医学技术-通讯
- 云南这个边境管理大队联合多部门开展普法宣传活动
- 西湖大学与杜克大学签署本科生访学协议
- 湖人助教疑讽狄龙:不要责怪小丑 问问你自己为什
- 焦点短讯!机场巴士怎么翻译_机场巴士怎么买票
- 世界热议:古因茶而兴,今以茶富民——赤壁古镇羊
- 恒指收跌2.39% 汽车股领跌
- 国乒大获全胜!女单5连胜5人进8强,王曼昱PK师妹
- vivo 天玑 9200+ 新机跑分 136 万,超越高通骁龙 8 Gen 2
- 全球百事通!张仲景国医大学何时施工完毕可以招生
- 俄蒙境外火蔓延至我国境内,森林消防队伍全力扑打
- 网游之近战法师_近战法师蝴蝶蓝 焦点讯息
- 天天热头条丨狄龙:詹姆斯一对一打不了我,想防骑
- 拓荆科技:中微公司拟减持公司不超1%股份_全球微
- 美容护理行业4月19日资金流向日报 世界今日讯
- 刘青云的逆袭,从草根到爱情事业双丰收,他凭什么
- 三天减肥的最快方法_三天减肥瘦10斤的方法
- 快资讯丨“魔镜”大外屏!vivo X Flip拥有3.0英
- 卓创资讯:需求反季节复苏 生猪及肉价或涨幅有限
- 美股异动 | 新能源车盘前继续下跌 特斯拉重挫
- 海兴电力(603556):4月20日北向资金增持28.78万
- 女生吃面崩溃上热搜,评论留下3W句吐槽:“你的冷
- 含钱的貔貅怎么摆放 貔貅怎么摆放 世界时快讯
- 济南2023年度社工考试报名人数创新高,首次突破2
- 北京长峰医院火灾事故39名伤病员仍在治疗
- 天天亮点!SpaceX星舰发射失败,马斯克回应
- 【独家】联特科技:CPO相关的开发项目暂未形成收入
油气
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
经济
-
中新网通辽10月18日电 (记者 张林虎)18日,记者从内蒙古自治区通辽市奈曼旗公安局获悉,国家一级保护动物--梅花鹿误入当地村民羊群,
-
中新网杭州10月18日电 (王题题 胡燕婕)云天收夏色,浅秋正渐浓。10月18日,浙江杭州市西湖游船有限公司推出的惠民多站点“西湖环湖游
-
中新网福州10月18日电 (记者 龙敏 王东明)福州市晋安区官方18日晚间通报,18日14时47分,晋安区岳峰镇化工路爱摩轮商业广场项目摩天
-
中新网兰州10月18日电 (闫姣 艾庆龙 吉翔)“红山白土头,黄河向西流。”不少人疑问,天下黄河向东流,为何甘肃永靖县这段黄河却向西
-
中新网北京10月18日电 《清华城市健康设施指数》18日在北京发布。报告成果显示,城市健康设施指数领先城市以中心城市和东部沿海城市