Docker學(xué)習(xí)筆記(1)-docker架構(gòu)

docker對(duì)于使用者來說其實(shí)是一個(gè)c/s模式的架構(gòu)。

docker分為server端和client端却音,docker后端其實(shí)是一個(gè)松耦合的架構(gòu)改抡,模塊之間各司其職,并有機(jī)的組合起來支持docker的運(yùn)行系瓢。

docker的總體架構(gòu)圖如下:

docker client與docker daemon 進(jìn)行通信阿纤,docker daemon 首先提供了一個(gè)server的功能,而后通過Engine與后端模塊進(jìn)行通信夷陋。

Docker Registry作用是存儲(chǔ)鏡像欠拾,可以是docker hub,也可以是內(nèi)網(wǎng)私有庫(kù)

Graph作用是管理已下載鏡像和鏡像之間的依賴關(guān)系(通過GraphDB記錄)

Docker Daemon回一個(gè)docker系統(tǒng)的常駐后臺(tái)的一個(gè)服務(wù)骗绕,通過自己的路由分發(fā)制度處理docker client的請(qǐng)求藐窄,并將請(qǐng)求解析到對(duì)應(yīng)的handler,Engine通過handler來執(zhí)行一個(gè)job

Job的設(shè)計(jì)者酬土,把Job設(shè)計(jì)得與Unix進(jìn)程相仿荆忍。比如說:Job有一個(gè)名稱,有參數(shù)撤缴,有環(huán)境變量刹枉,有標(biāo)準(zhǔn)的輸入輸出,有錯(cuò)誤處理屈呕,有返回狀態(tài)等微宝。

Driver是Docker架構(gòu)中的驅(qū)動(dòng)模塊。通過Driver驅(qū)動(dòng)凉袱,Docker可以實(shí)現(xiàn)對(duì)Docker容器執(zhí)行環(huán)境的定制芥吟。由于Docker運(yùn)行的生命周期中,并非用戶所有的操作都是針對(duì)Docker容器的管理专甩,另外還有關(guān)于Docker運(yùn)行信息的獲取钟鸵,Graph的存儲(chǔ)與記錄等。因此涤躲,為了將Docker容器的管理從Docker?Daemon內(nèi)部業(yè)務(wù)邏輯中區(qū)分開來棺耍,設(shè)計(jì)了Driver層驅(qū)動(dòng)來接管所有這部分請(qǐng)求锡足。

在Docker Driver的實(shí)現(xiàn)中舒帮,可以分為以下三類驅(qū)動(dòng):graphdriver托享、networkdriver和execdriver玄坦。

graphdriver主要用于完成容器鏡像的管理,包括存儲(chǔ)與獲取害幅。即當(dāng)用戶需要下載指定的容器鏡像時(shí)消恍,graphdriver將容器鏡像存儲(chǔ)在本地的指定目錄;同時(shí)當(dāng)用戶需要使用指定的容器鏡像來創(chuàng)建容器的rootfs時(shí)以现,graphdriver從本地鏡像存儲(chǔ)目錄中獲取指定的容器鏡像

graphdriver的初始化過程之前狠怨,有4種文件系統(tǒng)或類文件系統(tǒng)在其內(nèi)部注冊(cè),它們分別是aufs邑遏、btrfs佣赖、vfs和devmapper

networkdriver的用途是完成Docker容器網(wǎng)絡(luò)環(huán)境的配置,其中包括Docker啟動(dòng)時(shí)為Docker環(huán)境創(chuàng)建網(wǎng)橋记盒;Docker容器創(chuàng)建時(shí)為其創(chuàng)建專屬虛擬網(wǎng)卡設(shè)備憎蛤;以及為Docker容器分配IP、端口并與宿主機(jī)做端口映射纪吮,設(shè)置容器防火墻策略等

execdriver作為Docker容器的執(zhí)行驅(qū)動(dòng)俩檬,負(fù)責(zé)創(chuàng)建容器運(yùn)行命名空間,負(fù)責(zé)容器資源使用的統(tǒng)計(jì)與限制彬碱,負(fù)責(zé)容器內(nèi)部進(jìn)程的真正運(yùn)行等豆胸。在execdriver的實(shí)現(xiàn)過程中,原先可以使用LXC驅(qū)動(dòng)調(diào)用LXC的接口巷疼,來操縱容器的配置以及生命周期晚胡,而現(xiàn)在execdriver默認(rèn)使用native驅(qū)動(dòng),不依賴于LXC嚼沿。具體體現(xiàn)在Daemon啟動(dòng)過程中加載的ExecDriverflag參數(shù)估盘,該參數(shù)在配置文件已經(jīng)被設(shè)為"native"。這可以認(rèn)為是Docker在1.2版本上一個(gè)很大的改變骡尽,或者說Docker實(shí)現(xiàn)跨平臺(tái)的一個(gè)先兆

libcontainer是Docker架構(gòu)中一個(gè)使用Go語(yǔ)言設(shè)計(jì)實(shí)現(xiàn)的庫(kù)遣妥,設(shè)計(jì)初衷是希望該庫(kù)可以不依靠任何依賴,直接訪問內(nèi)核中與容器相關(guān)的API攀细。

正是由于libcontainer的存在箫踩,Docker可以直接調(diào)用libcontainer,而最終操縱容器的namespace谭贪、cgroups境钟、apparmor、網(wǎng)絡(luò)設(shè)備以及防火墻規(guī)則等俭识。這一系列操作的完成都不需要依賴LXC或者其他包慨削,libcontainer提供了一整套標(biāo)準(zhǔn)的接口來滿足上層對(duì)容器管理的需求。或者說缚态,libcontainer屏蔽了Docker上層對(duì)容器的直接管理磁椒。又由于libcontainer使用Go這種跨平臺(tái)的語(yǔ)言開發(fā)實(shí)現(xiàn),且本身又可以被上層多種不同的編程語(yǔ)言訪問

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末玫芦,一起剝皮案震驚了整個(gè)濱河市浆熔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌桥帆,老刑警劉巖蘸拔,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異环葵,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)宝冕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門张遭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人地梨,你說我怎么就攤上這事菊卷。” “怎么了宝剖?”我有些...
    開封第一講書人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵洁闰,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我万细,道長(zhǎng)扑眉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任赖钞,我火速辦了婚禮腰素,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘雪营。我一直安慰自己弓千,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開白布献起。 她就那樣靜靜地躺著洋访,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谴餐。 梳的紋絲不亂的頭發(fā)上姻政,一...
    開封第一講書人閱讀 52,696評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音总寒,去河邊找鬼扶歪。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的善镰。 我是一名探鬼主播妹萨,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼炫欺!你這毒婦竟也來了乎完?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤品洛,失蹤者是張志新(化名)和其女友劉穎树姨,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體桥状,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡帽揪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了辅斟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片转晰。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖士飒,靈堂內(nèi)的尸體忽然破棺而出查邢,到底是詐尸還是另有隱情,我是刑警寧澤酵幕,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布扰藕,位于F島的核電站,受9級(jí)特大地震影響芳撒,放射性物質(zhì)發(fā)生泄漏邓深。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一番官、第九天 我趴在偏房一處隱蔽的房頂上張望庐完。 院中可真熱鬧,春花似錦徘熔、人聲如沸门躯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)讶凉。三九已至,卻和暖如春山孔,著一層夾襖步出監(jiān)牢的瞬間懂讯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工台颠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留褐望,地道東北人勒庄。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像瘫里,于是被迫代替她去往敵國(guó)和親实蔽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

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