Docker
三大支柱核心技术:Namespace
、Cgroups
和UnionFS
,这节通过一个UTS Namespace
简单实践小案例,更加直观理解Namespace
资源隔离技术。
(资料图片仅供参考)
UTS Namespace
主要是用来隔离主机名和域名的隔离,它允许每个 UTS Namespace
拥有一个独立的主机名。例如我们的主机名称为 VM-4-14-centos
,使用 UTS Namespace
可以实现在容器内的主机名称为 container-docker
或者其他任意自定义主机名。
在进行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
技术实现主机名隔离功能。
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三大支柱核心技术:Namespace、Cgroups和UnionFS,这节通过一个UTSNamespace简单实践小案例,更加直观理解Namesp
在Go语言中,指针是一种非常重要的数据类型。它们允许我们直接访问内存中的数据,并对其进行修改。本文将介
在Python中,生成器(Generator)是一种特殊的迭代器,可以通过函数来创建。生成器可以动态地生成数据流,
河北省大名县发布大风蓝色预警
河北省峰峰矿区发布大风蓝色预警
邱县气象台发布大风蓝色预警【Ⅳ级 一般】
今天,我们就来聊聊最近一个关于【老人两天没出门邻居翻墙救人】的热门话题。关于老人两天没出门邻居翻墙救
请大虾介绍俩部好看的小说(网游玄幻穿越)《邪医小分队》去看看,这是它的简介。一群奇异的男女在一个邪医
今天,我们就来聊聊最近一个关于【复读13年男子否认为了奖金复读】的热门话题。关于复读13年男子否认为了奖
柯蓝发文退出《我就是演员》,她为何要退出?我觉得是迫于舆论压力太大了,导致她不敢释放自己的天性柯蓝退
4月20日,OFweek2023(第十二届)中国机器人产业大会在深圳正式举行。作为机器人全行业合作交流的盛宴,本
快科技4月21日消息,特斯拉又降价”了。据深圳南山区官方消息,参与2023年深圳市南山区爱车南山购”汽车专
编程客栈()4月21日消息:人工智能目前非常热门,每天有数百万用户使用ChatGPT。由于需求如此之高,因此运营C
河南周口的尚先生最近发了一个视频,称他的5岁儿子在自家店帮顾客烤鱼时不小心摔倒了。孩子摔倒后不顾疼痛
俗话说,买车容易养车难。这句话放在新能源车时代似乎已经不合时宜,但是,新车买回来后,大部分车主还是会
在本届上海车展上,宝马MINI因为区别对待中外参展者而成为众矢之的,而整个事件的起因仅仅是一只“不存在”
现实生活中,有许多夫妻在想要孩子的时候,发现“新娘”卵子很乖巧,“新郎”精子也很给力,主角都挺配合,
今天上午,第七届(2023)全球私募基金西湖峰会(以下简称“西湖峰会”)召开,主题为“新时代、新使命、新
北京商报讯(记者丁宁)4月20日,A股三大股指集体收跌,上证综指收跌0 09%,深证成指收跌0 37%,创业板指收跌1
4月18日,由广州市商务局、黄埔区人民政府、广州开发区管委会和胡润百富联合举办的第九届中国广州国际投资
安宁市八街街道党群服务中心服务群众“零距离”
今日谷雨|抓住春天的尾巴,赴一场云南茶山之约
乐享云南丨美食·保山河图大烧
自2022年底以来,A股市场一改颓势,展现出积极回暖的画风,半导体、AI、中特估等主题层出不穷,基金经理也
交易商品牌 产地交货地最新报价十二烷基二甲基甜菜碱 30%含量东营市鑫旺化工有限责任公司山东山东省7000元
如何抓好今冬明春市场监管领域安全生
12月16日,达州市达川区市场监督管理局下发《市场监管领域今冬明春安全生产隐患大排查大整治行动工作方案》,要求下属各部门从2022年12月16日起至2023年3月15日,全面聚焦城镇燃气、特种设备、危险化学品、烟花爆
《2021年度中国对外直接投资统计公报
金港高速公路连接柬埔寨首都金边和该国最大深水海港西哈努克港,是中国路桥按建造—运营—移交模式投资的项目,采用中国设计及质量标准,横跨5个省份,全长187 05公里,双向四车道。金港高速公路通车后,从金边到
总体保持稳定恢复态势 工业经济展现
2022年1至10月,浙江省宁波市811家汽车制造业规上工业总产值2646 8亿元,同比增长14 2%。图为11月19日,工人在领克汽车宁波梅山工厂的总装车间作业。今年以来,受疫情多发散发、市场需求不振等因素影响,国内工业
14家券商获首批个人养老金代销展业资
11月18日晚间,证监会发布《个人养老金基金销售机构名录》,共37家机构入围,其中券商14家,银行16家,独立基金销售机构7家。14家券商包括华泰证券、中信证券、海通证券、国泰君安、申万宏源、中金财富和长江证券
北京再担保承保规模超6000亿 覆盖中
北京中小企业融资再担保有限公司(简称北京再担保)发布的最新数据显示,成立14年来已累计承保规模超过6000亿元,覆盖中小微企业(农户)超过16万户次,积极推动北京市中小微企业融资规模不断扩大。北京再担保2008年
Copyright @ 2001-2023 www.u74.cn All Rights Reserved 商业时报网 版权所有
网站信息内容, 均为相关单位具有著作权,未经书面授权,转载注明出处
未经商业时报网书面授权,请勿建立镜像,转载请注明来源,违者依法必究