久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Docker 的前世今生

 常有理 2020-08-20

虛擬化

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

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

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

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

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

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

Docker 的前世今生

虛擬機的優(yōu)點

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

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

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

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

虛擬機的缺點

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

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

容器化

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

Docker 的前世今生

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

Docker 的前世今生

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

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

Docker 歷史

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

Docker 的前世今生

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

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

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

Docker 的前世今生

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

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

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

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

Docker 的前世今生

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

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

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

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

為什么選擇 Docker

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

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

更快速的啟動時間

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

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

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

持續(xù)交付和部署

  對開發(fā)和運維(DevOps)人員來說,,最希望的就是一次創(chuàng)建或配置,可以在任意地方正常運行,。

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

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

更輕松的遷移

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

更輕松的維護和擴展

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

容器與虛擬機的比較

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

Docker 的前世今生

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

Docker 的前世今生

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

Docker 的前世今生

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

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

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多