真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

LinuxUTSnamespace隔離

UTS,UNIX Time-sharing System namespace提供了主機名和域名的隔離。能夠使得子進程有獨立的主機名和域名(hostname),這一特性在Docker容器技術(shù)中被用到,使得docker容器在網(wǎng)絡(luò)上被視作一個獨立的節(jié)點,而不僅僅是宿主機上的一個進程。

創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站制作、網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的商城網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

Docker中利用UTS namespace原理,每個鏡像可以以本身所提供的服務(wù)名稱來命名鏡像的hostname,且不會對宿主機產(chǎn)生任何影響,由此達到主機名和域名的隔離效果。

使用一段簡單的代碼,試一試UTS隔離的效果:

#define _GNU_SOURCE #include #include #include #include #include #include #define STACK_SIZE (1024*1024) static char child_stack[STACK_SIZE]; char* const child_args[] = { "/bin/bash", NULL }; int child_main(void* args){ printf("Now in child process!n"); sethostname("ChildHostname",12); execv(child_args[0],child_args); return 1; } int main(){ printf("Program start: n"); int child_pid = clone(child_main,child_stack + STACK_SIZE,CLONE_NEWUTS | SIGCHLD,NULL); waitpid(child_pid,NULL,0); printf("Already exit!n"); return 0; }

看一下輸出結(jié)果:

[root@localhost workspace]# ./uts_uts.o Program start: Now in child process! [root@ChildHostnam workspace]# hostname ChildHostnam [root@ChildHostnam workspace]# exit exit Already exit! [root@localhost workspace]# hostname localhost.localdomain

上面代碼中,重要的地方是在調(diào)用clone()方法時,加入了 CLONE_NEWUTS 參數(shù),Linux內(nèi)核提供的UTS namespace隔離系統(tǒng)調(diào)用。如果不加,執(zhí)行這段代碼,將會更改當(dāng)前的主機名稱。不會產(chǎn)生主機名和域名的隔離效果。


分享文章:LinuxUTSnamespace隔離
標(biāo)題鏈接:http://weahome.cn/article/cggidh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部