容器化技術——Docker專題一 | 基礎概念

本文章是在網(wǎng)易云課堂的課程學習中編寫,部分圖片從網(wǎng)易云課堂ppt引用

容器化專題

導學:

偏重于理解和使用直晨,以核心概念為主,跟著操作為輔,學會查閱官方文檔焚刺,理解容器化技術在項目中的應用

重點:

1敛摘、要理解docker和k8s的使用,知道有哪些功能乳愉,知道如何使用

2兄淫、了解容器化帶來的好處,知道容器化技術具備的功能

難點:

1坡脐、要了解docker和k8s的架構泄私,理解容器編排的概念

2、了解操作系統(tǒng)备闲、網(wǎng)絡的概念


首先學習Docker

分為六大模塊進行學習晌端,列表如下:

1、Docker基礎概念

2恬砂、Docker安裝咧纠、卸載和加速

3、Docker鏡像泻骤、容器的常用命令

4漆羔、利用 Docker file 構建私有鏡像

5乳幸、運行Java程序

6、搭建Docker私有倉庫

為避免篇幅過長钧椰,分成六篇文章來記錄粹断。本文章介紹的是基礎概念模塊

一、Docker基礎概念

【Docker介紹】

1嫡霞、Docker是用Go語言進行開發(fā)實現(xiàn)瓶埋,基于Linux內(nèi)核的cgroup、namespace以及 AUFS類的Union FS等技術诊沪,對進程進行封裝隔離养筒,屬于操作系統(tǒng)層面的虛擬化技術。由于隔離的進程獨立于宿主和其它的隔離的進程端姚,因此也稱其為容器晕粪。

2、Docker在容器的基礎上渐裸,進行了進一步的封裝巫湘,從文件系統(tǒng)、網(wǎng)絡互聯(lián)到進程隔離等等昏鹃,極大的簡化了容器的創(chuàng)建和維護尚氛。使得Docker技術比虛擬機技術更為輕便、快捷洞渤。

【Docker和傳統(tǒng)虛擬機的對比】

傳統(tǒng)虛擬機技術:虛擬出一套硬件后阅嘶,在其上運行一個完整操作系統(tǒng),在該系統(tǒng)上再運行所需應用進程;

Docker:容器內(nèi)的應用進程直接運行于宿主的內(nèi)核载迄,容器內(nèi)沒有自己的內(nèi)核讯柔,而且也沒有進行硬件虛擬。因此容器要比傳統(tǒng)虛擬機更為輕便护昧。

Docker與傳統(tǒng)虛擬機對比總結

【為什么要使用Docker】

Docker優(yōu)勢:更高效地利用系統(tǒng)資源魂迄、更快速的啟動時間、一致的運行環(huán)境捏卓、持續(xù)交付和部署部署极祸、更輕松的遷移、更輕松的維護和擴展怠晴。

【Docker架構】

1遥金、Docker主要分為三大塊:客戶端、主機蒜田、倉庫

2稿械、Docker工作模式:使用客戶端-服務器(C/S)架構模式,使用遠程API來管理和創(chuàng)建Docker容器冲粤。

Docker架構模式

相關概念介紹:

1)Docker鏡像:是用于創(chuàng)建Docker容器的模板

2)Docker容器:是獨立運行的一個或一組應用

3)Docker客戶端:通過命令行或其他工具美莫,使用Docker的API與Docker的守護進程進行通信

4)Docker主機:可以是物理機或虛擬機页眯,用于執(zhí)行守護進程的倉庫

5)Docker倉庫:用于保存鏡像,可以理解為代碼控制中的代碼倉庫厢呵,比如GitHub

6)Docker machine:是一個簡化的docker安裝的命令行工具窝撵,通過簡單的命令行即可在相應平臺上安裝Docker

【Docker基本概念】

理解了Docker的下面三個基本概念,就理解了Docke的整個生命周期

1襟铭、鏡像(Image)

Docker鏡像相當于一個特殊的文件系統(tǒng)

以操作系統(tǒng)為例碌奉,操作系統(tǒng)分為內(nèi)核和用戶空間。對于Linux而言寒砖,內(nèi)核啟動后赐劣,會掛載root文件系統(tǒng)為其提供用戶空間支持。而Docker鏡像(Image) 哩都, 就相當于是一個root文件系統(tǒng)魁兼,除了提供容器運行時所需的程序、庫漠嵌、資源咐汞、配置等文件外,還包含了一些為運行時準備的配置參數(shù)(如匿名卷献雅、環(huán)境變量碉考、用戶等)。鏡像不包含任何動態(tài)數(shù)據(jù)挺身,其內(nèi)容在構建之后也不會被改變。

Docker鏡像分層存儲

Docker是分層存儲的架構锌仅,使得鏡像的復用章钾、定制變得更為容易。鏡像是一個虛擬的概念热芹,由一組多層的文件系統(tǒng)組成贱傀。鏡像構建時,是一層層地構建伊脓,每一層構建完不會再改變府寒,所以在構建每一層時盡量只包含該層需要添加的東西。還可以用之前構建好的鏡像作為基礎層报腔,進一步添加新的層株搔,定制自己所需的內(nèi)容,構建新的鏡像纯蛾。

2纤房、容器(Container)

容器和鏡像的關系

類似于Java中的類和實例,鏡像是靜態(tài)的定義翻诉,容器是鏡像運行時的實體炮姨。容器可以被創(chuàng)建捌刮、啟動、停止舒岸、刪除绅作、暫停等。

容器存儲層

是為容器運行時讀寫而準備的存儲層蛾派。容器也是分層存儲的俄认,每一個容器運行時,是以鏡像為基礎層碍脏,在其上面創(chuàng)建一個當前容器的存儲層梭依,它的生命周期和容器一樣,所以任何保存在容器存儲層的信息都會隨容器刪除而丟失典尾。

**注意:容器不應該向存儲層內(nèi)寫入任何數(shù)據(jù)役拴,容器存儲層要保持無狀態(tài)化。所有文件寫入操作钾埂,都應使用Volume數(shù)據(jù)卷河闰,或綁定宿主目錄,這樣讀寫會跳過容器存儲層褥紫,直接對宿主(或網(wǎng)絡存儲)發(fā)生讀寫姜性,性能和穩(wěn)定性更高。

數(shù)據(jù)卷

生命周期獨立于容器髓考,容器消亡,數(shù)據(jù)卷不會消亡氨菇。使用數(shù)據(jù)卷后,容器刪除或重新運行后乌询,數(shù)據(jù)不會丟失。

3豌研、倉庫(Repository)

Docker Registry

Docker Registry是集中存儲妹田、分發(fā)鏡像的服務,使得鏡像能夠在其他服務器上使用鬼佣。

一個Docker Registry可以包含多個倉庫(Repository),每個倉庫可以包含多個標簽沮趣,每個標簽對應一個鏡像。

通常一個倉庫會包含同一個軟件不同版本的鏡像坷随,標簽就常用于對應該軟件的各個版本房铭。我們可以通過<倉庫名>:<標簽>的格式來指定具體是該軟件哪個版本的鏡像驻龟。如果不給出標簽,將以最新的(latest)作為默認標簽翁狐。

舉個栗子:以centos鏡像為例凌蔬,centos 是倉庫的名字,其內(nèi)包含有不同的版本標簽砂心,如,6.9辩诞、7.5。我們可以通過centos:6.9译暂,或者centos:7.5來具體指定所需哪個版本的鏡像。如果忽略了標簽崎脉,比如centos,那將視為centos:latest伯顶。

Docker倉庫

1)Docker?Registry公開倉庫

常用的Registry是官方的Docker Hub,這也是默認的Registry祭衩。除此以外,還有CoreOS的Quay.io汪厨,CoreOS相關的鏡像存儲在這里愉择。另外,還有Google 的Google Container Registry, Kubernetes 的鏡像使用的就是這個服務衷戈。

加速器:國內(nèi)的一些云服務商提供的針對Docker Hub的鏡像服務层坠。常見的有阿里云加速器、DaoCloud 加速器等破花。使用加速器會直接從國內(nèi)的地址下載Docker Hub的鏡像疲吸,比直接從Docker Hub下載速度會提高很多前鹅。

國內(nèi)也有一些云服務商提供類似于Docker Hub的公開服務。比如網(wǎng)易云鏡像服務蹂喻、DaoCloud鏡像市場、阿里云鏡像庫等口四。

2)Docker?Registry私有倉庫

用戶可以在本地搭建私有Docker Registry。Docker 官方提供了Docker Registry鏡像秦陋,可以直接使用做為私有Registry服務。

開源的Docker Registry鏡像只提供了Docker Registry API的服務端實現(xiàn)踱侣,足以支持docker命令,不影響使用探膊。但不包含圖形界面待榔,以及鏡像維護、用戶管理锐锣、訪問控制等高級功能。在官方的商業(yè)化版本Docker Trusted Registry中雕憔,提供了這些高級功能。

除了官方的Docker Registry外分瘦,還有第三方軟件實現(xiàn)了Docker Registry API琉苇,甚至提供了用戶界面以及一些高級功能。比如并扇,VMWare HarborSonatype Nexus

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末土陪,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子乔遮,更是在濱河造成了極大的恐慌取刃,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件璧疗,死亡現(xiàn)場離奇詭異,居然都是意外死亡漆魔,警方通過查閱死者的電腦和手機改抡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門系瓢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人欠拾,你說我怎么就攤上這事骗绕。” “怎么了酬土?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長东揣。 經(jīng)常有香客問我腹泌,道長尔觉,這世上最難降的妖魔是什么凉袱? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任专甩,我火速辦了婚禮,結果婚禮上涤躲,老公的妹妹穿的比我還像新娘。我一直安慰自己蒙袍,他們只是感情好,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布害幅。 她就那樣靜靜地躺著岂昭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪邑遏。 梳的紋絲不亂的頭發(fā)上恰矩,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機與錄音枢里,去河邊找鬼。 笑死彬碱,一個胖子當著我的面吹牛奥洼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播灵奖,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼骡尽!你這毒婦竟也來了擅编?” 一聲冷哼從身側響起箫踩,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤谭贪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后俭识,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡缚态,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年猿规,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片姨俩。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡师郑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出张遭,到底是詐尸還是另有隱情地梨,我是刑警寧澤菊卷,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布洁闰,位于F島的核電站万细,受9級特大地震影響扑眉,放射性物質(zhì)發(fā)生泄漏赖钞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一弓千、第九天 我趴在偏房一處隱蔽的房頂上張望献起。 院中可真熱鬧砰诵,春花似錦捌显、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至年枕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間熏兄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工桥状, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留硝清,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓士飒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親酵幕。 傳聞我的和親對象是個殘疾皇子蚁趁,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

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