亚洲av岛国动作片在线观看,久久资源综合网,亚洲色图,果冻传媒一二三产区,日本少妇,com,欧美激情一,二,三区

Linux UTS namespace 隔離

發(fā)布時(shí)間:2024-10-22
uts,unix time-sharing system namespace提供了主機(jī)名和域名的隔離。能夠使得子進(jìn)程有獨(dú)立的主機(jī)名和域名(hostname),這一特性在docker容器技術(shù)中被用到,使得docker容器在網(wǎng)絡(luò)上被視作一個(gè)獨(dú)立的節(jié)點(diǎn),而不僅僅是宿主機(jī)上的一個(gè)進(jìn)程。
docker中利用uts namespace原理,每個(gè)鏡像可以以本身所提供的服務(wù)名稱來命名鏡像的hostname,且不會對宿主機(jī)產(chǎn)生任何影響,由此達(dá)到主機(jī)名和域名的隔離效果。
使用一段簡單的代碼,試一試uts隔離的效果:
#define _gnu_source #include <sys/types.h> #include <sys/wait.h> #include <stdio.h> #include <sched.h> #include <signal.h> #include <unistd.h> #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()方法時(shí),加入了 clone_newuts 參數(shù),linux內(nèi)核提供的uts namespace隔離系統(tǒng)調(diào)用。如果不加,執(zhí)行這段代碼,將會更改當(dāng)前的主機(jī)名稱。不會產(chǎn)生主機(jī)名和域名的隔離效果。
上一個(gè):快手怎么和主播連麥教程視頻(快手怎么和主播連麥視頻)
下一個(gè):上海浦東機(jī)場空運(yùn)到塔林(TLL)空運(yùn)價(jià)格

采購供應(yīng)鏈物流 采購供應(yīng)平臺
怎樣走美國海運(yùn)最快呢(美國的海運(yùn)流程)
陜西實(shí)施《噪聲法》噪聲污染治理成效明顯
5s怎么把軟件放一個(gè)框框
電子水準(zhǔn)儀與自動安平水準(zhǔn)儀共同特點(diǎn)
AC0805FR-072K43L,國巨車規(guī)電阻0805 2.43KΩ ±1% 1/8W
找不到惠普打印機(jī)驅(qū)動程序(為什么惠普打印機(jī)驅(qū)動找不到)
鍍鋅圓管組合式圍網(wǎng)技術(shù)參數(shù)
電動車物流可以寄嗎
美國清關(guān)一周海運(yùn)幾天(美國海運(yùn)指數(shù)實(shí)時(shí))