日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

虛擬化

  

  要解釋清楚 Docker,首先要解釋清楚容器(Container)的概念。要解釋容器的話,就需要從操作系統(tǒng)說(shuō)起。操作系統(tǒng)太底層,細(xì)說(shuō)的話一兩本書都說(shuō)不清楚。這里就一句話來(lái)總結(jié)一下:操作系統(tǒng)(Operating System,簡(jiǎn)稱OS)是管理計(jì)算機(jī)硬件與軟件資源的計(jì)算機(jī)程序,并且為軟件運(yùn)行提供通用服務(wù)的系統(tǒng)軟件。

  隨著硬件的性能提升,軟件種類的豐富,有兩種情況變得很常見(jiàn):

  1. 硬件性能過(guò)剩——很多計(jì)算機(jī)的硬件配置,往往會(huì)有大量時(shí)間處于硬件資源閑置的狀態(tài)。例如一般家用電腦,已經(jīng)是四核、六核的配置了,除了3A游戲、視頻制作、3D渲染、高性能計(jì)算等特殊應(yīng)用外,通常有 90% 以上時(shí)間 CPU 是閑置的;
  2. 軟件沖突——因?yàn)闃I(yè)務(wù)需要,兩個(gè)或者多個(gè)軟件之間沖突,或者需要同一個(gè)軟件的不同版本。例如早幾年做 Web 前端的,要測(cè)試網(wǎng)頁(yè)在不同版本的 IE 上是否能正常顯示,然而 windows 只能裝一個(gè)版本的 IE。

  

  為了解決軟件沖突,只能配置多臺(tái)計(jì)算機(jī),或者很麻煩的在同一臺(tái)電腦上安裝多個(gè)操作系統(tǒng)。顯然這兩個(gè)方案都有其缺點(diǎn):多臺(tái)計(jì)算機(jī)成本太高,多操作系統(tǒng)的安裝、切換都很麻煩。在硬件性能過(guò)剩的時(shí)候,硬件虛擬化的普及就很自然而然的提出來(lái)了。

  所謂硬件虛擬化,就是某個(gè)特殊的軟件,仿真出一臺(tái)或者多臺(tái)計(jì)算機(jī)的各種硬件,用戶可以在這一臺(tái)虛擬機(jī)上安裝、運(yùn)行操作系統(tǒng)(一般叫來(lái)賓操作系統(tǒng),Guest OS)和各種應(yīng)用,并且把 Guest OS 和上面應(yīng)用軟件對(duì)硬件資源的訪問(wèn)轉(zhuǎn)發(fā)到底層的硬件上來(lái)實(shí)現(xiàn)。

  對(duì)于 Guest OS 和上面的應(yīng)用程序來(lái)說(shuō),這臺(tái)虛擬機(jī)和普通物理計(jì)算機(jī)是完全一樣沒(méi)有任何區(qū)別的——除了性能可能差一點(diǎn)。全球第一人氣的 VMware Workstation 就是這么一個(gè)軟件,Oracle 的 VirtualBox 以及 Microsoft 的 Virtual PC 都是。這類軟件英語(yǔ)有一個(gè)專用的單詞是 Hypervisor(虛擬機(jī)管理程序)。

  

Docker 的前世今生

 

  

虛擬機(jī)的優(yōu)點(diǎn)

  

  可以把資源分配到不同的虛擬機(jī),達(dá)到硬件資源的最大化利用;

  相比直接在物理機(jī)上部署應(yīng)用,虛擬機(jī)更容易擴(kuò)展應(yīng)用;

  云服務(wù):通過(guò)虛擬機(jī)虛擬出不同的物理資源,可以快速搭建云服務(wù)。

虛擬化技術(shù)主要用來(lái)解決高性能的物理硬件產(chǎn)能過(guò)剩和老舊的硬件硬件產(chǎn)品產(chǎn)能過(guò)低的重組重用,透明化底層物理硬件,從而最大化的利用物理硬件。

  

虛擬機(jī)的缺點(diǎn)

  

  虛擬機(jī)的缺點(diǎn)在于 Guest OS 通常會(huì)占用不少硬件資源。例如 Windows 安裝 VMware 并開(kāi)機(jī) Guest OS,不運(yùn)行任何應(yīng)用的情況下,就需要占用 2 ~ 3G 內(nèi)存,20 ~ 30G 硬盤空間。而且為了應(yīng)用系統(tǒng)運(yùn)行的性能,往往還要給每臺(tái)虛擬機(jī)留出更多的內(nèi)存容量。雖然不少 Hypervisor 支持動(dòng)態(tài)內(nèi)存,但基本上都會(huì)降低虛擬機(jī)的性能。在這樣的資源占用情況下,少量的虛擬機(jī)還是可以接受的,如果同時(shí)運(yùn)行十多臺(tái)或數(shù)十臺(tái)虛擬機(jī),硬件資源的浪費(fèi)就會(huì)成倍遞增。通常來(lái)說(shuō),其中相當(dāng)大一部分甚至全部 Guest OS 都是相同的。

  能不能所有應(yīng)用使用同一個(gè)操作系統(tǒng)減少硬件資源的浪費(fèi),但是又能避免包括運(yùn)行庫(kù)在內(nèi)的軟件沖突呢?操作系統(tǒng)層虛擬化——容器概念的提出,就是為了解決這個(gè)問(wèn)題。Docker 就是一個(gè)容器的標(biāo)準(zhǔn)化實(shí)現(xiàn)。

  

容器化

  

  容器技術(shù)已經(jīng)發(fā)展了很長(zhǎng)一段時(shí)間了,例如:LXC,BSD Jails,Solaris Zones...

Docker 的前世今生

 

  容器化就是應(yīng)用程序級(jí)別的虛擬化技術(shù)。容器提供了將應(yīng)用程序的代碼、運(yùn)行時(shí)、系統(tǒng)工具、系統(tǒng)庫(kù)和配置打包到一個(gè)實(shí)例中的標(biāo)準(zhǔn)方法。容器共享一個(gè)內(nèi)核(操作系統(tǒng)),它安裝在硬件上。

  

Docker 的前世今生

 

  

  和虛擬機(jī)相比,容器有以下優(yōu)點(diǎn):

  1. 啟動(dòng)迅速:沒(méi)有虛擬機(jī)硬件的初始化,沒(méi)有 Guest OS 的啟動(dòng)過(guò)程,可以節(jié)約很多啟動(dòng)時(shí)間,這就是容器的“開(kāi)箱即用”;
  2. 占用資源少:沒(méi)有運(yùn)行 Guest OS 所需的內(nèi)存開(kāi)銷,無(wú)需為虛擬機(jī)預(yù)留運(yùn)行內(nèi)存,無(wú)需安裝、運(yùn)行 App 不需要的運(yùn)行庫(kù)/操作系統(tǒng)服務(wù),內(nèi)存占用、存儲(chǔ)空間占用都小的多。相同配置的服務(wù)器,如果運(yùn)行虛擬機(jī)能運(yùn)行十多臺(tái)的,通??梢赃\(yùn)行上百個(gè)容器毫無(wú)壓力——當(dāng)然前提是單個(gè)容器應(yīng)用本身不會(huì)消耗太多資源。

  

Docker 歷史

  

  2010 年,幾個(gè)搞 IT 的年輕人,在美國(guó)舊金山成立了一家名叫 dotCloud 的公司。dotCloud 的平臺(tái)即服務(wù)(Platform-as-a-Service, PaaS)提供商。底層技術(shù)上,dotCloud 平臺(tái)利用了 linux 的 LXC 容器技術(shù)。

  

Docker 的前世今生

 

  

  為了方便創(chuàng)建和管理這些容器,dotCloud 基于 google 公司推出的 Go 語(yǔ)言開(kāi)發(fā)了一套內(nèi)部工具,之后被命名為 Docker。Docker 就是這樣誕生的。

  LXC 是 Docker 的底層基石,但是在 Docker 0.9 版本的時(shí)候,Docker 見(jiàn)異思遷了,引入了基于 Go 語(yǔ)言構(gòu)建的 Libcontainer 的 execution driver。有了 Libcontainer 這個(gè)項(xiàng)目,Docker 不再需要依賴于 Linux 部件(LXC,libvirt,systemd-nspawn...)就可以處理 namespaces、control groups、capabilities、apparmor profiles、network interfaces。這下,LXC 淪為可選項(xiàng)。

  在 Docker 1.8 中 LXC 被 deprecated,在 Docker 1.10,LXC 徹底出局。Docker 推出 Libcontainer 自己集成了 Linux 內(nèi)核中的很多特性,作為一個(gè)獨(dú)特、穩(wěn)定且不受制于 Linux 的 Library,獨(dú)立的時(shí)代終于到來(lái)了。

  

Docker 的前世今生

 

  

  如同 Docker 的 Logo 一樣,Docker 的思想來(lái)源于集裝箱。集裝箱解決了什么問(wèn)題?在一艘大船上,可以把貨物規(guī)整的擺放起來(lái),并且各種各樣的貨物被集裝箱標(biāo)準(zhǔn)化,集裝箱與集裝箱之間互不影響。那么就不需要專門運(yùn)送水果的船和專門運(yùn)送化學(xué)用品的船了。只要這些貨物封裝在不同的集裝箱里,就可以用一艘大船把它們都運(yùn)走。

  Docker 技術(shù)誕生之后,并沒(méi)有引起行業(yè)的關(guān)注。而 dotCloud 公司,作為一家小型創(chuàng)業(yè)企業(yè),在激烈的競(jìng)爭(zhēng)之下,也步履維艱。

  正當(dāng)他們快要堅(jiān)持不下去的時(shí)候,腦子里蹦出了“開(kāi)源”的想法。什么是“開(kāi)源”?開(kāi)源,就是開(kāi)放源代碼。也就是將原來(lái)內(nèi)部保密的程序源代碼開(kāi)放給所有人,然后讓大家一起參與進(jìn)來(lái),貢獻(xiàn)代碼和意見(jiàn)。

  有的軟件一開(kāi)始就是開(kāi)源的。也有的軟件,是混不下去,創(chuàng)造者又不想放棄,所以選擇開(kāi)源。自己養(yǎng)不活,就吃“百家飯”嘛。2013 年 3 月,dotCloud 公司的創(chuàng)始人之一,Docker 之父,28 歲的 Solomon Hykes 正式?jīng)Q定,將 Docker 項(xiàng)目開(kāi)源。

  

Docker 的前世今生

 

  

  不開(kāi)則已,一開(kāi)驚人。越來(lái)越多的 IT 工程師發(fā)現(xiàn)了 Docker 的優(yōu)點(diǎn),然后蜂擁而至,加入 Docker 開(kāi)源社區(qū)。Docker 的人氣迅速攀升,速度之快,令人瞠目結(jié)舌。

  開(kāi)源當(dāng)月, Docker 0.1 版本發(fā)布。此后的每一個(gè)月, Docker 都會(huì)發(fā)布一個(gè)版本。到 2014 年 6 月 9 日, Docker 1.0 版本正式發(fā)布。

  此時(shí)的 Docker,已經(jīng)成為行業(yè)里人氣最火爆的開(kāi)源技術(shù),沒(méi)有之一。甚至像 Google、微軟、Amazon、 VMware 這樣的巨頭們都對(duì)它青睞有加,表示將全力支持。

  Docker 火了之后, dotCloud 公司干脆把公司名字也改成了 Docker Inc. 。

  

為什么選擇 Docker

  

更高效的利用系統(tǒng)資源

  

  由于容器不需要進(jìn)行硬件虛擬以及運(yùn)行完整操作系統(tǒng)等額外開(kāi)銷,Docker 對(duì)系統(tǒng)資源的利用率更高。無(wú)論是應(yīng)用執(zhí)行速度、內(nèi)存損耗或者文件存儲(chǔ)速度,都要比傳統(tǒng)虛擬機(jī)技術(shù)更高效。因此,相比虛擬機(jī)技術(shù),一個(gè)相同配置的主機(jī),往往可以運(yùn)行更多數(shù)量的應(yīng)用。

  

更快速的啟動(dòng)時(shí)間

  

  傳統(tǒng)的虛擬機(jī)技術(shù)啟動(dòng)應(yīng)用服務(wù)往往需要數(shù)分鐘,而 Docker 容器應(yīng)用,由于直接運(yùn)行于宿主內(nèi)核,無(wú)需啟動(dòng)完整的操作系統(tǒng),因此可以做到秒級(jí)、甚至毫秒級(jí)的啟動(dòng)時(shí)間。大大的節(jié)約了開(kāi)發(fā)、測(cè)試、部署的時(shí)間。

  

一致的運(yùn)行環(huán)境

  

  開(kāi)發(fā)過(guò)程中一個(gè)常見(jiàn)的問(wèn)題是環(huán)境一致性問(wèn)題。由于開(kāi)發(fā)環(huán)境、測(cè)試環(huán)境、生產(chǎn)環(huán)境不一致,導(dǎo)致有些 bug 并未在開(kāi)發(fā)過(guò)程中被發(fā)現(xiàn)。而 Docker 的鏡像提供了除內(nèi)核外完整的運(yùn)行時(shí)環(huán)境,確保了應(yīng)用運(yùn)行環(huán)境一致性,從而不會(huì)再出現(xiàn)「這段代碼在我機(jī)器上沒(méi)問(wèn)題啊」 這類問(wèn)題。

  

持續(xù)交付和部署

  

  對(duì)開(kāi)發(fā)和運(yùn)維(DevOps)人員來(lái)說(shuō),最希望的就是一次創(chuàng)建或配置,可以在任意地方正常運(yùn)行。

  使用 Docker 可以通過(guò)定制應(yīng)用鏡像來(lái)實(shí)現(xiàn)持續(xù)集成、持續(xù)交付、部署。開(kāi)發(fā)人員可以通過(guò) Dockerfile 來(lái)進(jìn)行鏡像構(gòu)建,并結(jié)合持續(xù)集成(Continuous Integration)系統(tǒng)進(jìn)行集成測(cè)試,而運(yùn)維人員則可以直接在生產(chǎn)環(huán)境中快速部署該鏡像,甚至結(jié)合持續(xù)部署(Continuous Delivery/Deployment)系統(tǒng)進(jìn)行自動(dòng)部署。

  而且使用 Dockerfile 使鏡像構(gòu)建透明化,不僅僅開(kāi)發(fā)團(tuán)隊(duì)可以理解應(yīng)用運(yùn)行環(huán)境,也方便運(yùn)維團(tuán)隊(duì)理解應(yīng)用運(yùn)行所需條件,幫助更好的在生產(chǎn)環(huán)境中部署該鏡像。

  

更輕松的遷移

  

  由于 Docker 確保了執(zhí)行環(huán)境的一致性,使得應(yīng)用的遷移更加容易。Docker 可以在很多平臺(tái)上運(yùn)行,無(wú)論是物理機(jī)、虛擬機(jī)、公有云、私有云,甚至是筆記本,其運(yùn)行結(jié)果是一致的。因此用戶可以很輕易的將在一個(gè)平臺(tái)上運(yùn)行的應(yīng)用,遷移到另一個(gè)平臺(tái)上,而不用擔(dān)心運(yùn)行環(huán)境的變化導(dǎo)致應(yīng)用無(wú)法正常運(yùn)行的情況。

  

更輕松的維護(hù)和擴(kuò)展

  

  Docker 使用的分層存儲(chǔ)以及鏡像的技術(shù),使得應(yīng)用重復(fù)部分的復(fù)用更為容易,也使得應(yīng)用的維護(hù)更新更加簡(jiǎn)單,基于基礎(chǔ)鏡像進(jìn)一步擴(kuò)展鏡像也變得非常簡(jiǎn)單。此外,Docker 團(tuán)隊(duì)同各個(gè)開(kāi)源項(xiàng)目團(tuán)隊(duì)一起維護(hù)了一大批高質(zhì)量的 官方鏡像,既可以直接在生產(chǎn)環(huán)境使用,又可以作為基礎(chǔ)進(jìn)一步定制,大大的降低了應(yīng)用服務(wù)的鏡像制作成本。

  

容器與虛擬機(jī)的比較

  

  下面的圖片比較了 Docker 和傳統(tǒng)虛擬化方式的不同之處,可見(jiàn)容器是在操作系統(tǒng)層面上實(shí)現(xiàn)虛擬化,直接復(fù)用本地主機(jī)的操作系統(tǒng),而傳統(tǒng)方式則是在硬件層面實(shí)現(xiàn)。

  

Docker 的前世今生

 

  

  與傳統(tǒng)的虛擬機(jī)相比,Docker 優(yōu)勢(shì)體現(xiàn)為啟動(dòng)速度快、占用體積小。

Docker 的前世今生

 

至此 Docker 概念性相關(guān)內(nèi)容就介紹到這里,下文我們聊聊 Docker 架構(gòu)及其工作原理。

Docker 的前世今生

 

您的 點(diǎn)贊 和 轉(zhuǎn)發(fā) 是對(duì)我最大的支持。

關(guān)注 哈嘍沃德先生「文檔 + 視頻」每篇文章都配有專門視頻講解,學(xué)習(xí)更輕松噢 ~

分享到:
標(biāo)簽:Docker
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定