1太雨、Docker-前期概要

一吟榴、虛擬機

虛擬機思想就是可以把一臺計算機分隔成若干臺機器使用
所謂虛擬機(Virtual Machine)指通過軟件模擬的具有完整硬件系統(tǒng)功能、并可以運行在一個完全隔離環(huán)境中的完整計算機系統(tǒng)囊扳。虛擬機就是相對于傳統(tǒng)計算機而言的一個計算機概念吩翻,一個非實體的計算機,但具有所有傳統(tǒng)計算機的功能锥咸。
虛擬機系統(tǒng)可以通過生成現(xiàn)有操作系統(tǒng)的全新虛擬鏡像(比如iso)仿野。對于windows操作系統(tǒng)而言,它具有真實windows系統(tǒng)完全一樣的功能她君。對于linux/unix系統(tǒng)脚作,也是如此,一個linux(unix系統(tǒng))被分隔為多個相對獨立的小系統(tǒng)(麻雀雖小卻五臟俱全)缔刹。進入虛擬系統(tǒng)后球涛,所有操作都是在這個全新的獨立的虛擬系統(tǒng)里面進行,可以獨立安裝運行軟件校镐,保存數(shù)據(jù)亿扁,甚至擁有自己的獨立桌面互動操作,卻不會對真正的宿主系統(tǒng)產(chǎn)生任何影響 鸟廓,更為方便的是這種系統(tǒng)具有能夠在宿主系統(tǒng)與虛擬鏡像之間靈活切換从祝。虛擬系統(tǒng)和傳統(tǒng)的虛擬機(Parallels DesktopVmware引谜、VirtualBox牍陌、Virtual pc、kvm)存在不同员咽。
具體就在于:虛擬系統(tǒng)不會大量降低電腦的性能毒涧,啟動虛擬系統(tǒng)不需要像啟動
windows/linux系統(tǒng)那樣耗費時間,運行程序更加方便快捷贝室;虛擬系統(tǒng)只能模擬和現(xiàn)有操作系統(tǒng)相同的環(huán)境契讲,而虛擬機則可以模擬出其他種類的操作系統(tǒng)(比如在筆者的宿主ubuntu下用virtualbox來運行windowsx也不是沒有的仿吞,虛擬機計算需要多了一個虛擬機與宿主機模擬底層之間的交換層,所以在應(yīng)用程序**運行速度上比虛擬系統(tǒng)慢得多捡偏。但是值得相信的是唤冈,現(xiàn)在的硬件越來越快,應(yīng)該可以不考慮這占損失就好了银伟,尤其還會有未來的量子計算機產(chǎn)生你虹。

二、容器技術(shù)

一種比傳統(tǒng)虛擬機更優(yōu)秀的計算資源利用管理技術(shù)
有了虛擬機vm的長期網(wǎng)紅枣申,容器技術(shù)很快就被程序高手們挖掘出來售葡。Cgroup被引入linux系統(tǒng)的內(nèi)核體系,隨之基于cgroup的應(yīng)用就多了起來忠藤!也許很多朋友一開始只希望用這個cgroup來實行操作系統(tǒng)層面資源隔離挟伙,從而形成linux系統(tǒng)下多用戶使用中的資源安全∧:ⅲ可是GO語言出來之后尖阔,喜歡嘗鮮的程序員,用GO寫出了docker這大型工具榨咐。GO的新生面孔與Docker強大未來前途介却,一下子把高密度運算帶到了一個新高度。
虛擬化技術(shù)的長期使用块茁,已經(jīng)成為一種被大家廣泛認可的服務(wù)器資源共享方式齿坷,它可以在按需構(gòu)建操作系統(tǒng)實例的過程當(dāng)中為系統(tǒng)管理員提供極大的靈活性。這樣的特點為滿足了投資者縮減成本的需求数焊,也滿足了管理人員的希望永淌。但這種是基于
虛擬化技術(shù)的。hypervisor作為一個中間件充當(dāng)一種運行在物理服務(wù)器和操作系統(tǒng)之間的中間軟件層佩耳,其根本任務(wù)就在于允許多個操作系統(tǒng)和應(yīng)用程序共享一套基礎(chǔ)物理硬件(比如硬盤遂蛀、內(nèi)存、cpu干厚、通訊總線等)李滴,它可以協(xié)調(diào)計算任務(wù)訪問服務(wù)器上的所有物理設(shè)備和虛擬機,因此有時間人們又叫它是虛擬機監(jiān)視(控)器(Virtual Machine Monitor)蛮瞄。Hypervisor是所有虛擬化技術(shù)的核心所坯,非中斷地支持多工作、多負載遷移的能力是Hypervisor的基本功能裕坊。每當(dāng)服務(wù)器啟動執(zhí)行Hypervisor這個進程時包竹,它會給每一臺虛擬機分配適量的內(nèi)存、CPU籍凝、網(wǎng)絡(luò)和磁盤周瞎,并加載所有虛擬機的客戶操作系統(tǒng)。
hypervisor仍然存在一些性能和資源使用效率方面的小問題饵蒂,在大運算量有時候就成了一種瓶頸與制約声诸,因此基于容器(Container)的新型虛擬化技術(shù)成為真實的新晉網(wǎng)紅。這個網(wǎng)紅代表就是Docker退盯。
目前Docker的使用已經(jīng)非常普遍彼乌,特別在一線的互聯(lián)網(wǎng)公司。使用Docker技術(shù)的優(yōu)勢可以幫助企業(yè)快速地擴展服務(wù)渊迁,從而實現(xiàn)彈性部署計算業(yè)務(wù)的能力慰照。在云服務(wù)理念興起之后,Docker的使用場景和范圍進一步得到發(fā)展琉朽,如今微服務(wù)架構(gòu)又流行起來毒租,微服務(wù)+Docker再次成為完美組合,快速交付箱叁、快速布署墅垮、簡捷運維部署一股腦兒就落地了。
名詞解釋
cgroups耕漱,其名稱源自控制組群(control groups)的簡寫算色,是Linux內(nèi)核的一個功能,用來限制螟够、控制與分離一個進程組的資源(如CPU灾梦、內(nèi)存、磁盤輸入輸出等)妓笙。
這個項目最早是由Google的工程師(主要是Paul Menage和Rohit Seth)在2006年發(fā)起若河,最早的名稱為進程容器(process containers)。在2007年時给郊,因為在Linux內(nèi)核中牡肉,容器(container)這個名詞有許多不同的意義,為避免混亂淆九,被重命名為cgroup统锤,并且被合并到2.6.24版的內(nèi)核中去。自那以后炭庙,又添加了很多功能饲窿。
Hypervisor, 一種運行在基礎(chǔ)物理服務(wù)器和操作系統(tǒng)之間的中間軟件層焕蹄,可允許多個操作系統(tǒng)和應(yīng)用共享硬件逾雄。也可叫做VMM( virtual machine monitor )虛擬機監(jiān)控器
細說Docker。
Docker 是世界領(lǐng)先的軟件容器平臺。開發(fā)人員利用 Docker 消除了協(xié)作編碼時“只在我的機器上可正常工作”的問題鸦泳。對于運維人員而言银锻,利用 Docker 可以在隔離容器并行運行和管理應(yīng)用,獲得更好的計算密度做鹰。企業(yè)利用 Docker 可以構(gòu)建敏捷的軟件交付方式击纬,以高速度、高安全性钾麸、高可靠性地為 Linux 和 Windows Server 應(yīng)用發(fā)布新功能更振,跨平臺一氣通吃。
Docker 屬于 Linux 容器的一種封裝饭尝,成套地提供了簡單易用的容器使用接口肯腕。它是事實上目前最流行的 Linux 容器方案。Docker 將應(yīng)用程序以及該程序運行的依賴計算環(huán)境钥平,打包在了一個鏡像文件之中实撒。只要運行這個鏡像文件,就會生成一個虛擬容器。程序在這個虛擬容器里運行,就如同在真實的物理機上運行一樣雷激。
另外的優(yōu)勢就是,Docker 的接口相當(dāng)簡單肴甸,用戶可以方便地創(chuàng)建和使用容器,把自己的應(yīng)用放入容器囚巴。利用容器接口還可以進行版本管理原在、復(fù)制、分享彤叉、修改庶柿,就像管理普通的代碼一樣方便快捷,當(dāng)然前提是你必須學(xué)好docker的所有知識秽浇。

三浮庐、為什么要優(yōu)先使用Docker,而不是虛擬機呢

1柬焕、在性能上講

容器除了運行其中應(yīng)用外审残,基本不消耗額外的系統(tǒng)資源。就連虛擬機中 hypervisor 支持也節(jié)省了斑举。因此使得應(yīng)用的性能進一步提高搅轿,同時系統(tǒng)的開銷盡量小。傳統(tǒng)虛擬機方式運行 10 個不同的應(yīng)用就要起 10 個虛擬機富玷,而Docker 只需要啟動 10 個安全隔離的應(yīng)用就可以了璧坟。

2既穆、更快速的交付和部署

對開發(fā)和運維(devop)人員來說,最希望的就是一次創(chuàng)建或配置雀鹃,可以在任意地方正常運行幻工。
開發(fā)者可以使用一個標(biāo)準(zhǔn)的鏡像來構(gòu)建一套開發(fā)容器,開發(fā)完成之后褐澎,運維人員可以直接使用這個容器來部署代碼会钝。 Docker 可以快速創(chuàng)建容器伐蒋,快速迭代應(yīng)用程序工三,并讓整個過程全程可見先鱼,使團隊中的其他成員更容易理解應(yīng)用程序是如何創(chuàng)建和工作的掸读。 Docker 容器輕量級的,快速是原生特性。容器的啟動時間秒級水平,大量地節(jié)約了開發(fā)饵逐、測試、部署時間薄声。

3婴程、更高效的虛擬化

虛擬機基于硬件層面實現(xiàn)虛擬化,需要額外的虛擬機管理應(yīng)用和虛擬操作系統(tǒng)層
Docker容器是在操作系統(tǒng)層面上實現(xiàn)虛擬化直接復(fù)制宿主主機的操作系統(tǒng),更輕量級,更高效

4蒸绩、更輕松的遷移和擴展

Docker 容器幾乎可以在任意的平臺上運行,包括物理機步藕、虛擬機漂彤、公有云立润、私有云拷肌、個人電腦、服務(wù)器等等。 這種兼容性可以讓用戶“一次建設(shè)跑遍全天下成為事實”仲器,最終簡的方法就是把一個應(yīng)用程序從一個平臺直接復(fù)制遷移到另外一處即可 。

5仰冠、維護更簡單

使用 Docker乏冀,只需要小小的修改,就可以替代以往大量的更新工作洋只。所有的修改都以增量的方式被分發(fā)和更新辆沦,從而實現(xiàn)自動化并且高效的管理昼捍。

四、Docker 與VM的效率肢扯。

VM是一個運行在宿主機之上的完整的操作系統(tǒng)妒茬,VM運行自身操作系統(tǒng)會占用較多的CPU、內(nèi)存蔚晨、硬盤資源乍钻。Docker不同于VM,只包含應(yīng)用程序以及依賴庫铭腕,基于libcontainer運行在宿主機上银择,并處于一個隔離的環(huán)境中,這使得Docker更加輕量高效谨履,啟動容器只需幾秒鐘之內(nèi)完成欢摄。由于Docker輕量、資源占用少笋粟,使得Docker可以輕易的應(yīng)用到構(gòu)建標(biāo)準(zhǔn)化的應(yīng)用中。雖然Docker目前還不夠完善析蝴,比如隔離效果不如VM害捕,還需要共享宿主機操作系統(tǒng)的一些基礎(chǔ)庫等(這可能與還不夠完善GO-lang有關(guān));網(wǎng)絡(luò)配置功能相對簡單闷畸,主要以橋接方式為主尝盼。

image

docker容器與VM間的不同

Docker 在容器的基礎(chǔ)上,進行了進一步的封裝佑菩,從文件系統(tǒng)盾沫、網(wǎng)絡(luò)互聯(lián)到進程隔離等等,極大的簡化了容器的創(chuàng)建和維護殿漠。使得 Docker 技術(shù)比虛擬機技術(shù)更為輕便赴精、快捷。
相對傳統(tǒng)的虛擬化方式绞幌,作為一種新興的虛擬化方式蕾哟,Docker 跟傳統(tǒng)的虛擬化方式具有眾多優(yōu)勢。Docker 容器的啟動可以在秒級實現(xiàn)莲蜘;Docker 對系統(tǒng)資源的利用率很高谭确,一臺主機上可以同時運行數(shù)千個 Docker 容器。

對比傳統(tǒng)虛擬機總結(jié)

特性 容器 虛擬機
啟動 秒級 分鐘級
硬盤使用 一般為 MB 一般為 GB
性能 接近原生 弱于
系統(tǒng)支持量 單機支持上千個容器 一般幾十個
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末票渠,一起剝皮案震驚了整個濱河市逐哈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌问顷,老刑警劉巖昂秃,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件薯鼠,死亡現(xiàn)場離奇詭異,居然都是意外死亡械蹋,警方通過查閱死者的電腦和手機出皇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哗戈,“玉大人郊艘,你說我怎么就攤上這事∥ㄒВ” “怎么了纱注?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長胆胰。 經(jīng)常有香客問我狞贱,道長,這世上最難降的妖魔是什么蜀涨? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任瞎嬉,我火速辦了婚禮,結(jié)果婚禮上厚柳,老公的妹妹穿的比我還像新娘氧枣。我一直安慰自己,他們只是感情好别垮,可當(dāng)我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布便监。 她就那樣靜靜地躺著,像睡著了一般碳想。 火紅的嫁衣襯著肌膚如雪烧董。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天胧奔,我揣著相機與錄音逊移,去河邊找鬼。 笑死葡盗,一個胖子當(dāng)著我的面吹牛螟左,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播觅够,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼胶背,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了喘先?” 一聲冷哼從身側(cè)響起钳吟,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎窘拯,沒想到半個月后红且,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坝茎,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年暇番,在試婚紗的時候發(fā)現(xiàn)自己被綠了嗤放。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡壁酬,死狀恐怖次酌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情舆乔,我是刑警寧澤岳服,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布希俩,位于F島的核電站吊宋,受9級特大地震影響璃搜,放射性物質(zhì)發(fā)生泄漏盒刚。R本人自食惡果不足惜因块,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一涡上、第九天 我趴在偏房一處隱蔽的房頂上張望拒名。 院中可真熱鬧增显,春花似錦、人聲如沸糖权。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽腿堤。三九已至笆檀,卻和暖如春盒至,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背寝蹈。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工箫老, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留耍鬓,地道東北人流妻。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓绅这,卻偏偏與公主長得像证薇,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子寇窑,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,700評論 2 354

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