Docker與Linux Namespace 引言

概述

Docker 使用Linux Namespace 和 Cgroups 的虛擬化工具薪丁。
Linux Namespace 是kernel 的一個(gè)功能,它可以隔離一系列系統(tǒng)的資源瞎疼,比如PID(Process ID),User ID, Network等等畸悬。一般看到這里,很多人會(huì)想到一個(gè)命令chroot委煤,就像chroot允許把當(dāng)前目錄變成根目錄一樣(被隔離開來(lái)的),Namesapce也可以在一些資源上修档,將進(jìn)程隔離起來(lái)碧绞,這些資源包括進(jìn)程樹,網(wǎng)絡(luò)接口吱窝,掛載點(diǎn)等等讥邻。

比如一家公司向外界出售自己的計(jì)算資源。公司有一臺(tái)性能還不錯(cuò)的服務(wù)器院峡,每個(gè)用戶買到一個(gè)tomcat實(shí)例用來(lái)運(yùn)行它們自己的應(yīng)用兴使。有些調(diào)皮的客戶可能不小心進(jìn)入了別人的tomcat實(shí)例,修改或者關(guān)閉了其中的某些資源照激,這樣就會(huì)導(dǎo)致各個(gè)客戶之間互相干擾发魄。也許你會(huì)說(shuō),我們可以限制不同用戶的權(quán)限俩垃,讓用戶只能訪問(wèn)自己名下的tomcat励幼,但是有些操作可能需要系統(tǒng)級(jí)別的權(quán)限,比如root吆寨。我們不可能給每個(gè)用戶都授予root權(quán)限赏淌,也不可能給每個(gè)用戶都提供一臺(tái)全新的物理主機(jī)讓他們互相隔離踩寇,因此這里L(fēng)inux Namespace就派上了用場(chǎng)啄清。使用Namespace, 我們就可以做到UID級(jí)別的隔離俺孙,也就是說(shuō)辣卒,我們可以以UID為n的用戶,虛擬化出來(lái)一個(gè)namespace睛榄,在這個(gè)namespace里面荣茫,用戶是具有root權(quán)限的。但是在真實(shí)的物理機(jī)器上场靴,他還是那個(gè)UID為n的用戶啡莉,這樣就解決了用戶之間隔離的問(wèn)題。當(dāng)然這個(gè)只是Namespace其中一個(gè)簡(jiǎn)單的功能旨剥。

namespace.png

除了User Namespace ,PID也是可以被虛擬的咧欣。命名空間建立系統(tǒng)的不同視圖, 對(duì)于每一個(gè)命名空間轨帜,從用戶看起來(lái)魄咕,應(yīng)該像一臺(tái)單獨(dú)的Linux計(jì)算機(jī)一樣,有自己的init進(jìn)程(PID為1)蚌父,其他進(jìn)程的PID依次遞增哮兰,A和B空間都有PID為1的init進(jìn)程毛萌,子容器的進(jìn)程映射到父容器的進(jìn)程上,父容器可以知道每一個(gè)子容器的運(yùn)行狀態(tài)喝滞,而子容器與子容器之間是隔離的阁将。從圖中我們可以看到,進(jìn)程3在父命名空間里面PID 為3囤躁,但是在子命名空間內(nèi)冀痕,他就是1.也就是說(shuō)用戶從子命名空間 A 內(nèi)看進(jìn)程3就像 init 進(jìn)程一樣,以為這個(gè)進(jìn)程是自己的初始化進(jìn)程狸演,但是從整個(gè) host 來(lái)看言蛇,他其實(shí)只是3號(hào)進(jìn)程虛擬化出來(lái)的一個(gè)空間而已。

當(dāng)前Linux一共實(shí)現(xiàn)六種不同類型的namespace:
Namespace類型 系統(tǒng)調(diào)用參數(shù) 內(nèi)核版本
Mount CLONE_NEWNS 2.4.19
UTS CLONE_NEWUTS 2.6.19
IPC CLONE_NEWIPC 2.6.19
PID CLONE_NEWPID 2.6.24
Network CLONE_NEWNET 2.6.29
User CLONE_NEWUSER 3.8

Namesapce 的API主要使用三個(gè)系統(tǒng)調(diào)用:
clone() - 創(chuàng)建新進(jìn)程宵距。根據(jù)系統(tǒng)調(diào)用參數(shù)來(lái)判斷哪種類型的namespace被創(chuàng)建腊尚,而且它們的子進(jìn)程也會(huì)被包含到namespace中
unshare() - 將進(jìn)程移出某個(gè)namespace
setns() - 將進(jìn)程加入到namesp中

參考

本人學(xué)習(xí)實(shí)踐的記錄均來(lái)自<<自己動(dòng)手寫docker>>,后面不在標(biāo)注满哪。

安裝go開發(fā)環(huán)境

跟參考教材保持一致:

wget https://golang.google.cn/dl/go1.7.1.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.7.1.linux-amd64.tar.gz
vim /etc/profile
export PATH=$PATH:/usr/local/go/bin 
source  /etc/profile
go version
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末婿斥,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子哨鸭,更是在濱河造成了極大的恐慌民宿,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件像鸡,死亡現(xiàn)場(chǎng)離奇詭異活鹰,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)只估,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門志群,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人蛔钙,你說(shuō)我怎么就攤上這事锌云。” “怎么了吁脱?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵桑涎,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我兼贡,道長(zhǎng)攻冷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任紧显,我火速辦了婚禮讲衫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己涉兽,他們只是感情好招驴,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著枷畏,像睡著了一般别厘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拥诡,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天触趴,我揣著相機(jī)與錄音,去河邊找鬼渴肉。 笑死冗懦,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的仇祭。 我是一名探鬼主播披蕉,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼乌奇!你這毒婦竟也來(lái)了没讲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤礁苗,失蹤者是張志新(化名)和其女友劉穎爬凑,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體试伙,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嘁信,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了迁霎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吱抚。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡百宇,死狀恐怖考廉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情携御,我是刑警寧澤昌粤,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站啄刹,受9級(jí)特大地震影響涮坐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜誓军,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一袱讹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦捷雕、人聲如沸椒丧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)壶熏。三九已至,卻和暖如春浦译,著一層夾襖步出監(jiān)牢的瞬間棒假,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工精盅, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留帽哑,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓叹俏,卻偏偏與公主長(zhǎng)得像祝拯,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子她肯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345