Docker基礎(chǔ)技術(shù)

很久之前就了解使用過docker窍帝,但是之后就慢慢淡忘了扬卷,并且一直沒有真正了解下docker底層的基本原理。
然后今天想好好學(xué)習(xí)一下艘儒,這只是我的一個總結(jié)帝雇,大家可以直接去看陳皓大大的幾篇博客涮俄。

DOCKER基礎(chǔ)技術(shù):LINUX NAMESPACE(上)
DOCKER基礎(chǔ)技術(shù):LINUX NAMESPACE(下)
DOCKER基礎(chǔ)技術(shù):LINUX CGROUP
DOCKER基礎(chǔ)技術(shù):AUFS
DOCKER基礎(chǔ)技術(shù):DEVICEMAPPER

以下內(nèi)容大部分來自陳皓大大的博客,只是作為個人學(xué)習(xí)資料進(jìn)行總結(jié)尸闸。

Namespace解決的問題主要是環(huán)境隔離的問題
Linux CGroup解決對計算機(jī)資源使用上的隔離

一彻亲、Namespace
首先了解下Linux Namespace,是Linux提供的一種內(nèi)核級別環(huán)境隔離的方法吮廉,提供了對UTS苞尝、IPC、mount宦芦、PID宙址、network、User等的隔離機(jī)制调卑。

  1. UTS命名空間使得不同的UTS命名空間有不同的主機(jī)名和域名抡砂。

  2. IPC全稱 Inter-Process Communication,是Unix/Linux下進(jìn)程間通信的一種方式恬涧,IPC有共享內(nèi)存注益、信號量、消息隊列等方法溯捆。所以丑搔,為了隔離,我們也需要把IPC給隔離開來,這樣低匙,只有在同一個Namespace下的進(jìn)程才能相互通信。
    新建進(jìn)程的時候加上CLONE_NEWIPC參數(shù)就沒法共享信息碳锈。

 int container_pid = clone(container_main, container_stack+STACK_SIZE, 
            CLONE_NEWUTS | CLONE_NEWIPC | SIGCHLD, NULL); 
  1. 加上CLONE_NEWPID之后新建進(jìn)程pid變?yōu)?顽冶,我們知道,在傳統(tǒng)的UNIX系統(tǒng)中售碳,PID為1的進(jìn)程是init强重,地位非常特殊。他作為所有進(jìn)程的父進(jìn)程贸人,有很多特權(quán)(比如:屏蔽信號等)间景,另外,其還會為檢查所有進(jìn)程的狀態(tài)艺智,我們知道倘要,如果某個子進(jìn)程脫離了父進(jìn)程(父進(jìn)程沒有wait它),那么init就會負(fù)責(zé)回收資源并結(jié)束這個子進(jìn)程十拣。所以封拧,要做到進(jìn)程空間的隔離,首先要創(chuàng)建出PID為1的進(jìn)程夭问,最好就像chroot那樣泽西,把子進(jìn)程的PID在容器內(nèi)變成1。
    但是缰趋,我們會發(fā)現(xiàn)捧杉,在子進(jìn)程的shell里輸入ps,top等命令,我們還是可以看得到所有進(jìn)程秘血。說明并沒有完全隔離味抖。這是因為,像ps, top這些命令會去讀/proc文件系統(tǒng)灰粮,所以非竿,因為/proc文件系統(tǒng)在父進(jìn)程和子進(jìn)程都是一樣的,所以這些命令顯示的東西都是一樣的谋竖。
    所以红柱,我們還需要對文件系統(tǒng)進(jìn)行隔離。
 int container_pid = clone(container_main, container_stack+STACK_SIZE, 
            CLONE_NEWUTS | CLONE_NEWIPC | SIGCHLD, NULL); 
  1. 我們在啟用了mount namespace并在子進(jìn)程中重新mount了/proc文件系統(tǒng)蓖乘。這里锤悄,多說一下。在通過CLONE_NEWNS創(chuàng)建mount namespace后嘉抒,父進(jìn)程會把自己的文件結(jié)構(gòu)復(fù)制給子進(jìn)程中零聚。而子進(jìn)程中新的namespace中的所有mount操作都只影響自身的文件系統(tǒng),而不對外界產(chǎn)生任何影響。這樣可以做到比較嚴(yán)格地隔離隶症。
    我們還有別的一些文件系統(tǒng)也需要這樣mount政模。

  2. User Namespace

  3. Network Namespace

二、Linux CGroup
Linux CGroup全稱Linux Control Group蚂会, 是Linux內(nèi)核的一個功能淋样,用來限制,控制與分離一個進(jìn)程組群的資源(如CPU胁住、內(nèi)存趁猴、磁盤輸入輸出等)。

三彪见、AUFS

四儡司、DEVICEMAPPER

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市余指,隨后出現(xiàn)的幾起案子捕犬,更是在濱河造成了極大的恐慌,老刑警劉巖酵镜,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件或听,死亡現(xiàn)場離奇詭異,居然都是意外死亡笋婿,警方通過查閱死者的電腦和手機(jī)誉裆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缸濒,“玉大人足丢,你說我怎么就攤上這事”优洌” “怎么了斩跌?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長捞慌。 經(jīng)常有香客問我耀鸦,道長,這世上最難降的妖魔是什么啸澡? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任袖订,我火速辦了婚禮,結(jié)果婚禮上嗅虏,老公的妹妹穿的比我還像新娘洛姑。我一直安慰自己,他們只是感情好皮服,可當(dāng)我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布楞艾。 她就那樣靜靜地躺著参咙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪硫眯。 梳的紋絲不亂的頭發(fā)上蕴侧,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天,我揣著相機(jī)與錄音两入,去河邊找鬼净宵。 笑死,一個胖子當(dāng)著我的面吹牛谆刨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播归斤,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼痊夭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了脏里?” 一聲冷哼從身側(cè)響起她我,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎迫横,沒想到半個月后番舆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡矾踱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年恨狈,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呛讲。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡禾怠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出贝搁,到底是詐尸還是另有隱情吗氏,我是刑警寧澤,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布雷逆,位于F島的核電站弦讽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏膀哲。R本人自食惡果不足惜往产,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望某宪。 院中可真熱鬧捂齐,春花似錦、人聲如沸缩抡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至压真,卻和暖如春娩嚼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背滴肿。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工岳悟, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人泼差。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓贵少,卻偏偏與公主長得像,于是被迫代替她去往敵國和親堆缘。 傳聞我的和親對象是個殘疾皇子滔灶,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 寫這個系列文章主要是對之前做項目用到的docker相關(guān)技術(shù)做一些總結(jié),包括docker基礎(chǔ)技術(shù)Linux命名空間吼肥,...
    __七把刀__閱讀 5,817評論 0 16
  • 轉(zhuǎn)載自 http://blog.opskumu.com/docker.html 一录平、Docker 簡介 Docke...
    極客圈閱讀 10,510評論 0 120
  • 一、Docker 簡介 Docker 兩個主要部件:Docker: 開源的容器虛擬化平臺Docker Hub: 用...
    R_X閱讀 4,391評論 0 27
  • 據(jù)悉缀皱,近日出現(xiàn)一款革命性健康食品斗这,引起了大眾的廣泛關(guān)注和熱情追捧。而帶動這股熱潮的啤斗,正是森若雅(北京)國際貿(mào)...
    微笑的太陽花66閱讀 290評論 0 0
  • 暮春時節(jié)表箭,滿城飛花,醉舞紅塵钮莲,卻也飄零無依燃逻。唯翠竹獨姿于庭院,靜處于山林臂痕,光陰遲暮伯襟,流年推杯換盞,竹從遙遠(yuǎn)的秦漢握童,...
    嬋雙閱讀 1,658評論 3 5