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
看一下輸出結(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)生主機名和域名的隔離效果。