Docker

image

ZERO

????持續(xù)更新 請(qǐng)關(guān)注:https://zorkelvll.cn/blogs/zorkelvll/articles/2019/01/21/1548041077470

一在岂、背景

????對(duì)于大部分程序員而言(當(dāng)然嘍牛郑,可能只是我一個(gè)個(gè)例)卑惜,對(duì)docker的初步認(rèn)識(shí)可能就是安裝軟件起來非常方便堪簿,進(jìn)一步就是學(xué)會(huì)使用幾個(gè)docker命令承疲,最多謝謝compose文件;但是冲呢,對(duì)docker相關(guān)的基本概念、思想以及k8s編排工具等招狸,可能最多也只是聽過敬拓,卻從來都沒有深入研究過,因此為了完善自己對(duì)docker相關(guān)的理解而在此進(jìn)行記錄裙戏!

二乘凸、基本概念

1、容器

通俗地講累榜,容器就是一個(gè)存放東西的地方营勤;比如,在java中容器是存放java對(duì)象的集合如List壹罚;在Spring中IOC容器用于存放和管理各種bean對(duì)象葛作;而在軟件領(lǐng)域,容器則是存放軟件的一組環(huán)境猖凛,主要是將軟件打包成標(biāo)準(zhǔn)化單元赂蠢,以用于開發(fā)、交付和部署

2辨泳、虛擬機(jī)

容器是對(duì)操作系統(tǒng)層面進(jìn)行虛擬化的虱岂,容器間共享同一套系統(tǒng)資源;而虛擬機(jī)則是對(duì)硬件層面進(jìn)行虛擬化的菠红,然后在其上運(yùn)行一套完整操作系統(tǒng)第岖!

3、Docker

Docker是一種在操作系統(tǒng)層面的虛擬化容器试溯,實(shí)現(xiàn)對(duì)進(jìn)程的封裝和隔離

4蔑滓、鏡像 VS 容器 VS 倉庫

  • 鏡像Image:一個(gè)特殊的文件系統(tǒng)
  • 容器Container:鏡像運(yùn)行時(shí)的實(shí)體
  • 倉庫Repository:集中存放鏡像文件的地方

三、docker核心技術(shù)

!1烫饼、命名空間Namespaces

命名空間Namespaces是linux提供的一種用于分離進(jìn)程樹猎塞、網(wǎng)絡(luò)接口、掛載點(diǎn)以及進(jìn)程間通信等資源的方法杠纵!

目標(biāo)是“希望在同一臺(tái)機(jī)器上的不同服務(wù)能夠做到完全隔離的效果荠耽,也即各個(gè)服務(wù)就像是運(yùn)行在多臺(tái)不同的機(jī)器上一樣”,對(duì)不同的容器實(shí)現(xiàn)了隔離比藻,保證各個(gè)服務(wù)之間互不影響和安全性

七種不同的命名空間:以在創(chuàng)建新的進(jìn)程時(shí)設(shè)置新進(jìn)程應(yīng)該在哪些資源上與宿主機(jī)進(jìn)行隔離

  • CLONE_NEWCGROUP
  • CLONE_NEWIPC
  • CLONE_NEWNET
  • CLONE_NEWNS
  • CLONE_NEWPID
  • CLONE_NEWUSER
  • CLONE_NEWUTS

2铝量、進(jìn)程

進(jìn)程即一個(gè)正在執(zhí)行的程序,也是在現(xiàn)代分時(shí)系統(tǒng)中的一個(gè)任務(wù)單元银亲!

3慢叨、網(wǎng)絡(luò)

docker提供了四種不同的網(wǎng)絡(luò)模式Host、Container务蝠、None和Bridge模式

默認(rèn)為網(wǎng)橋Bridge模式拍谐,該模式除了分配隔離的網(wǎng)絡(luò)命名空間外,還會(huì)為所有的容器設(shè)置IP地址

4馏段、libnetwork

整個(gè)網(wǎng)絡(luò)部分的功能都是通過docker拆分出來的libnetwork實(shí)現(xiàn)的轩拨,它提供了一個(gè)連接不同容器的實(shí)現(xiàn),同時(shí)也能夠?yàn)閼?yīng)用給出一個(gè)能夠提供一致的編程接口和網(wǎng)絡(luò)層抽象的容器網(wǎng)絡(luò)模型

三個(gè)主要組件:Sandbox院喜,Endpoint亡蓉,Network

在容器網(wǎng)絡(luò)模型中,每一個(gè)容器內(nèi)部都包含一個(gè)sandbox喷舀,其中存儲(chǔ)著當(dāng)前容器的網(wǎng)絡(luò)棧配置砍濒,包括容器的接口、路由表和DNS設(shè)置硫麻;linux使用命名空間實(shí)現(xiàn)這個(gè)sandbox

每一個(gè)sandbox中都可能會(huì)有一個(gè)或多個(gè)endpoint爸邢,在linux上就是一個(gè)虛擬的網(wǎng)卡veth,sandbox通過endpoint加入到對(duì)應(yīng)的網(wǎng)絡(luò)中(該網(wǎng)絡(luò)可能是linux網(wǎng)橋或vlan)

5拿愧、掛載點(diǎn)

在新的進(jìn)程中創(chuàng)建隔離的掛載點(diǎn)命名空間需要在clone函數(shù)中傳入CLONE_NEWNS甲棍,以使得子進(jìn)程可以得到父進(jìn)程掛載點(diǎn)的拷貝;如果不傳入這個(gè)參數(shù)赶掖,子進(jìn)程對(duì)文件系統(tǒng)的讀寫就都會(huì)同步回父進(jìn)程以及整個(gè)主機(jī)的文件系統(tǒng)

如果一個(gè)容器需要啟動(dòng)感猛,那么它一定需要提供一個(gè)根文件系統(tǒng)rootfs,容器需要使用這個(gè)文件系統(tǒng)來創(chuàng)建一個(gè)新的進(jìn)程奢赂,所有二進(jìn)制的執(zhí)行都必須在這個(gè)根文件系統(tǒng)中

6陪白、chroot

通過改變當(dāng)前系統(tǒng)的根目錄,限制用戶的權(quán)利膳灶,建立一個(gè)與原系統(tǒng)完全隔離的目錄結(jié)構(gòu)

咱士!7立由、CGroups

Control Groups 能夠隔離宿主機(jī)器上的物理資源,如CPU序厉、內(nèi)存锐膜、磁盤I/O和網(wǎng)絡(luò)帶寬

每一組CGroup都是一組被相同的標(biāo)準(zhǔn)和參數(shù)限制的進(jìn)程,不同的CGroup之間有層級(jí)關(guān)系

弛房!8道盏、UnionFS

Linux的命名空間和控制組分別解決了不同資源隔離的問題,前者解決了進(jìn)程文捶、網(wǎng)絡(luò)以及文件系統(tǒng)的隔離荷逞,后者實(shí)現(xiàn)了CPU、內(nèi)存等資源的隔離粹排;种远;除此之外,還有一個(gè)非常重要的問題顽耳,即是鏡像問題需要解決

docker鏡像就是一個(gè)文件

9坠敷、存儲(chǔ)驅(qū)動(dòng)

10、AUFS

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末射富,一起剝皮案震驚了整個(gè)濱河市常拓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌辉浦,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件茎辐,死亡現(xiàn)場離奇詭異宪郊,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)拖陆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門弛槐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人依啰,你說我怎么就攤上這事乎串。” “怎么了速警?”我有些...
    開封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵叹誉,是天一觀的道長。 經(jīng)常有香客問我闷旧,道長长豁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任忙灼,我火速辦了婚禮匠襟,結(jié)果婚禮上钝侠,老公的妹妹穿的比我還像新娘。我一直安慰自己酸舍,他們只是感情好帅韧,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著啃勉,像睡著了一般忽舟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上璧亮,一...
    開封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天萧诫,我揣著相機(jī)與錄音,去河邊找鬼枝嘶。 笑死帘饶,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的群扶。 我是一名探鬼主播及刻,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼竞阐!你這毒婦竟也來了缴饭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤骆莹,失蹤者是張志新(化名)和其女友劉穎颗搂,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體幕垦,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡丢氢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了先改。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片疚察。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖仇奶,靈堂內(nèi)的尸體忽然破棺而出貌嫡,到底是詐尸還是另有隱情,我是刑警寧澤该溯,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布岛抄,位于F島的核電站,受9級(jí)特大地震影響狈茉,放射性物質(zhì)發(fā)生泄漏弦撩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一论皆、第九天 我趴在偏房一處隱蔽的房頂上張望益楼。 院中可真熱鬧猾漫,春花似錦、人聲如沸感凤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽陪竿。三九已至禽翼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間族跛,已是汗流浹背闰挡。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留礁哄,地道東北人长酗。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像桐绒,于是被迫代替她去往敵國和親夺脾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

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

  • Docker — 云時(shí)代的程序分發(fā)方式 要說最近一年云計(jì)算業(yè)界有什么大事件茉继?Google Compute Engi...
    ahohoho閱讀 15,545評(píng)論 15 147
  • Docker容器技術(shù)已經(jīng)發(fā)展了好些年咧叭,在很多項(xiàng)目都有應(yīng)用,線上運(yùn)行也很穩(wěn)定烁竭。整理了部分Docker的學(xué)習(xí)筆記以及新...
    __七把刀__閱讀 11,452評(píng)論 0 58
  • 《Docker從入門到實(shí)踐》閱讀筆記 原書地址: https://yeasy.gitbooks.io/docker...
    GuoYuebo閱讀 11,389評(píng)論 1 39
  • docker常用命令原理圖概覽: 按照docker官網(wǎng)上的說法菲茬,docker的文件系統(tǒng)分為兩層:bootfs和ro...
    燕京博士閱讀 2,965評(píng)論 2 32
  • 最近婆婆陷入小女人的戀愛當(dāng)中,視頻聊天一聊都是一個(gè)多小時(shí)派撕,從小時(shí)候的經(jīng)歷聊到家長里短婉弹,從學(xué)校聊到社會(huì),從自己聊到兒...
    上善淼淼閱讀 2,306評(píng)論 2 3