<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          什么是Docker容器?

          共 2888字,需瀏覽 6分鐘

           ·

          2021-10-02 13:10



          Docker是一種輕量級(jí)的虛擬化技術(shù),同時(shí)是一個(gè)開(kāi)源的應(yīng)用容器運(yùn)行環(huán)境搭建平臺(tái),可以讓開(kāi)發(fā)者以便捷方式打包應(yīng)用到一個(gè)可移植的容器中,然后安裝至任何運(yùn)行Linux或Windows等系統(tǒng)的服務(wù)器上。相較于傳統(tǒng)虛擬機(jī),Docker容器提供輕量化的虛擬化方式、安裝便捷、啟停速度快。

          為什么需要Docker容器?

          虛擬機(jī)(Virtual Machine,簡(jiǎn)稱VM)的發(fā)展,減輕了企業(yè)對(duì)硬件資源的依賴,它將一臺(tái)物理設(shè)備虛擬為多個(gè)邏輯設(shè)備,每個(gè)邏輯設(shè)備可運(yùn)行不同的操作系統(tǒng),并且應(yīng)用程序都可以在相互獨(dú)立的空間內(nèi)運(yùn)行而互不影響,從而顯著提高設(shè)備的工作效率。然而,傳統(tǒng)VM需要安裝操作系統(tǒng)才能執(zhí)行應(yīng)用程序,占用系統(tǒng)資源過(guò)多。多數(shù)情況下,用戶只需要運(yùn)行簡(jiǎn)單的應(yīng)用程序,采用VM技術(shù)操作繁瑣且造成資源浪費(fèi)。倘若需要遷移應(yīng)用服務(wù)程序,則需遷移整個(gè)VM,因此企業(yè)迫切需要輕量級(jí)的虛擬化技術(shù)。

          容器,就是一種輕量級(jí)的虛擬化技術(shù),目的和虛擬機(jī)一樣,都是為了創(chuàng)造“隔離環(huán)境”。但是它不像VM采用操作系統(tǒng)級(jí)的資源隔離,容器采用的是進(jìn)程級(jí)的系統(tǒng)隔離。Docker作為創(chuàng)建容器的主流工具,近年來(lái)迅速發(fā)展,它的優(yōu)勢(shì)在于可以讓開(kāi)發(fā)者將企業(yè)需要的各種應(yīng)用及應(yīng)用依賴文件封裝在Docker鏡像文件中,然后在任何物理設(shè)備(Linux設(shè)備或Window設(shè)備等)上安裝運(yùn)行實(shí)現(xiàn)虛擬化,讓?xiě)?yīng)用程序徹底脫離底層設(shè)備,可以在物理機(jī)之間靈活遷移部署,使運(yùn)維工程師擺脫了繁瑣的環(huán)境部署,極大的提高了工作效率,同時(shí)減少了部署過(guò)程中的潛在風(fēng)險(xiǎn)。


          Docker容器具有以下三大特點(diǎn):

          • 輕量化:一臺(tái)主機(jī)上運(yùn)行的多個(gè)Docker容器可以共享主機(jī)操作系統(tǒng)內(nèi)核;啟動(dòng)迅速,只需占用很少的計(jì)算和內(nèi)存資源。
          • 標(biāo)準(zhǔn)開(kāi)放:Docker容器基于開(kāi)放式標(biāo)準(zhǔn),能夠在所有主流Linux版本、Microsoft Windows以及包括VM、裸機(jī)服務(wù)器和云在內(nèi)的任何基礎(chǔ)設(shè)施上運(yùn)行。
          • 安全可靠:Docker賦予應(yīng)用的隔離性不僅限于彼此隔離,還獨(dú)立于底層的基礎(chǔ)設(shè)施。Docker默認(rèn)提供最強(qiáng)的隔離,因此應(yīng)用出現(xiàn)問(wèn)題,也只是單個(gè)容器的問(wèn)題,而不會(huì)波及到整臺(tái)主機(jī)。

          Docker容器 VS VM

          Docker容器和傳統(tǒng)VM技術(shù),在技術(shù)實(shí)現(xiàn)上有所不同。下圖顯示的是VM與Docker容器的邏輯組成:

          • VM:使用Hypervisor提供虛擬機(jī)的運(yùn)行平臺(tái),管理每個(gè)VM中操作系統(tǒng)的運(yùn)行。每個(gè)VM都要有自己的操作系統(tǒng)、應(yīng)用程序和必要的依賴文件等。

          • Docker容器:使用Docker引擎進(jìn)行調(diào)度和隔離,提高了資源利用率,在相同硬件能力下可以運(yùn)行更多的容器實(shí)例;每個(gè)容器擁有自己的隔離化用戶空間。


          虛擬機(jī)與Docker容器對(duì)比

          相較于VM,Docker容器作為一種輕量級(jí)的虛擬化方式,在應(yīng)用方面具有以下顯著優(yōu)勢(shì):

          • Docker容器可以在秒級(jí)時(shí)間內(nèi)快速啟動(dòng)和停止,相較傳統(tǒng)虛擬機(jī)顯著提升。
          • Docker容器對(duì)系統(tǒng)資源要求低,數(shù)千個(gè)Docker容器可同時(shí)運(yùn)行在同一個(gè)主機(jī)上。
          • Docker容器通過(guò)類似Git的操作來(lái)方便用戶獲取和更新應(yīng)用鏡像
          • Docker容器通過(guò)Dockerfile配置文件實(shí)現(xiàn)自動(dòng)化創(chuàng)建和靈活部署,提高工作效率。
          • Docker容器除了運(yùn)行其中的應(yīng)用之外,基本不消耗額外的系統(tǒng)資源,保證應(yīng)用性能的同時(shí),盡量減小系統(tǒng)開(kāi)銷。

          下圖可直觀了解Docker容器與傳統(tǒng)VM方式的區(qū)別:


          Docker容器與傳統(tǒng)VM的區(qū)對(duì)比

          Docker容器是如何工作的?

          Docker的三大組成要素:

          • 鏡像:Docker鏡像是一個(gè)特殊的文件系統(tǒng),除了提供容器運(yùn)行時(shí)所需的程序、庫(kù)、資源、配置等文件外,還包含了一些為運(yùn)行時(shí)準(zhǔn)備的配置參數(shù)。鏡像不包含任何動(dòng)態(tài)數(shù)據(jù),其內(nèi)容在構(gòu)建之后也不會(huì)被改變。鏡像可以用來(lái)創(chuàng)建Docker容器,用戶可以使用設(shè)備上已有的鏡像來(lái)安裝多個(gè)相同的Docker容器。

          • 容器:鏡像創(chuàng)建的運(yùn)行實(shí)例,Docker利用容器來(lái)運(yùn)行應(yīng)用。每個(gè)容器都是相互隔離的、保證安全的平臺(tái)。我們可以把容器看做是一個(gè)輕量級(jí)的Linux運(yùn)行環(huán)境。

          • 鏡像倉(cāng)庫(kù):集中存放鏡像文件的地方。用戶創(chuàng)建完鏡像后,可以將其上傳到公共倉(cāng)庫(kù)或者私有倉(cāng)庫(kù),需要在另一臺(tái)主機(jī)上使用該鏡像時(shí),只需要從倉(cāng)庫(kù)上下載即可。


          Docker容器的運(yùn)行邏輯如下圖所示,Docker使用客戶端/服務(wù)器 (C/S) 架構(gòu)模式,Docker守護(hù)進(jìn)程(Docker daemon)作為Server端接收Docker客戶端的請(qǐng)求,并負(fù)責(zé)創(chuàng)建、運(yùn)行和分發(fā)Docker容器。Docker守護(hù)進(jìn)程一般在Docker主機(jī)后臺(tái)運(yùn)行,用戶使用Docker客戶端直接跟Docker守護(hù)進(jìn)程進(jìn)行信息交互。



          Docker運(yùn)行流程

          • Docker客戶端:用于和Docker守護(hù)進(jìn)程(Docker Daemon)建立通信的客戶端。Docker客戶端只需要向Docker服務(wù)器或者守護(hù)進(jìn)程發(fā)出請(qǐng)求(Docker構(gòu)建、Docker拉取和Docker啟動(dòng)等指令),服務(wù)器或者守護(hù)進(jìn)程將完成所有工作并返回結(jié)果。

          • 如橙色流程所示,執(zhí)行Docker構(gòu)建指令會(huì)根據(jù)Docker文件構(gòu)建一個(gè)鏡像存放于本地Docker主機(jī)。

          • 如藍(lán)色流程所示,執(zhí)行Docker拉取指令會(huì)從云端鏡像倉(cāng)庫(kù)拉取鏡像至本地Docker主機(jī)或?qū)⒈镜冂R像推送至遠(yuǎn)端鏡像倉(cāng)庫(kù)。

          • 如黑色流程所示,執(zhí)行Docker啟動(dòng)指令會(huì)將鏡像安裝至容器并啟動(dòng)容器。

          • Docker主機(jī):一個(gè)物理或者虛擬的機(jī)器用于執(zhí)行 Docker守護(hù)進(jìn)程和容器。

          • Docker守護(hù)進(jìn)程:接收并處理Docker客戶端發(fā)送的請(qǐng)求,監(jiān)測(cè)Docker API的請(qǐng)求和管理Docker對(duì)象,比如鏡像、容器、網(wǎng)絡(luò)和數(shù)據(jù)卷。


          EC-IoT解決方案基于“邊緣智能+云化管理”平臺(tái),物聯(lián)網(wǎng)關(guān)開(kāi)放邊緣計(jì)算能力,快速適配不同行業(yè)邊緣智能數(shù)據(jù)處理需求,實(shí)現(xiàn)關(guān)鍵業(yè)務(wù)本地毫秒級(jí)實(shí)時(shí)響應(yīng),完成數(shù)據(jù)本地聚合優(yōu)化,高價(jià)值數(shù)據(jù)主動(dòng)回傳云端。

          邊緣計(jì)算網(wǎng)關(guān)基于“硬件平臺(tái)化,業(yè)務(wù)APP化”的設(shè)計(jì)理念,終端功能由APP軟件定義,用戶基于基礎(chǔ)服務(wù)接口開(kāi)發(fā)自定義APP,并實(shí)現(xiàn)在邊緣計(jì)算網(wǎng)關(guān)的靈活部署,快速適應(yīng)業(yè)務(wù)需求復(fù)雜多變的物聯(lián)場(chǎng)景。邊緣計(jì)算網(wǎng)關(guān)支持部署Docker容器,用戶可在部署的容器上安裝自己的業(yè)務(wù)APP,同時(shí)網(wǎng)關(guān)設(shè)備提供各種eSDK接口供容器和APP調(diào)用其資源。




          轉(zhuǎn)載申明:轉(zhuǎn)載本號(hào)文章請(qǐng)注明作者來(lái)源,本號(hào)發(fā)布文章若存在版權(quán)等問(wèn)題,請(qǐng)留言聯(lián)系處理,謝謝。


          推薦閱讀

          更多架構(gòu)相關(guān)技術(shù)知識(shí)總結(jié)請(qǐng)參考“架構(gòu)師全店鋪技術(shù)資料打包”相關(guān)電子書(shū)(37本技術(shù)資料打包匯總詳情可通過(guò)“閱讀原文”獲取)。

          全店內(nèi)容持續(xù)更新,現(xiàn)下單“全店鋪技術(shù)資料打包(全)”,后續(xù)可享全店內(nèi)容更新“免費(fèi)”贈(zèng)閱,價(jià)格僅收198元(原總價(jià)350元)。



          溫馨提示:

          掃描二維碼關(guān)注公眾號(hào),點(diǎn)擊閱讀原文鏈接獲取架構(gòu)師技術(shù)全店資料打包匯總(全)電子書(shū)資料詳情


          瀏覽 72
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  一本大道东京热无码中文字幕 | 啪啪啪大香蕉网站 | 国产se在线 | 国产18禁黄网站禁片免费视频 | 亚洲天堂视频在线观看 |