精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

為什么需要Docker容器?Docker容器和VM有什么區別?

jf_HnAzBl9o ? 來源:網絡工程師筆記 ? 2023-09-27 09:21 ? 次閱讀

容器技術這幾年,真的是特別火爆啊。

盡管容器技術已經出現很久了,卻是隨著Docker的出現而變得廣為人知的。

Docker是第一個使容器能在不同機器之間移植的系統。

業內甚至經常出現一種聲音:Docker將取代VM。

9d5c163e-5cc9-11ee-939d-92fbcf53809c.png

不得不說,還是夸張了。

容器的優勢在于是它使得業務的上云部署更快,資源利用更高。但是在安全性上,不好說。

今天就給你展開說說,到底什么是Docker容器?Docker容器和VM有什么區別?

01

為什么需要Docker容器?

01這就得先說回到虛擬機了

虛擬機,也就是Virtual Machine,VM的發展,減輕了企業對硬件資源的依賴。

它將一臺物理設備虛擬為多個邏輯設備,每個邏輯設備可運行不同的操作系統,并且應用程序都可以在相互獨立的空間內運行而互不影響,從而顯著提高設備的工作效率。

然而,傳統VM需要安裝操作系統才能執行應用程序,占用系統資源過多。

多數情況下,用戶只需要運行簡單的應用程序,采用VM技術操作繁瑣且造成資源浪費。

假如需要遷移應用服務程序,則需遷移整個VM,因此企業迫切需要輕量級的虛擬化技術。

02靈活遷移部署,簡直不要太香

容器,就是一種輕量級的虛擬化技術,目的和虛擬機一樣,都是為了創造“隔離環境”。

但是它不像VM采用操作系統級的資源隔離,容器采用的是進程級的系統隔離。

Docker作為創建容器的主流工具,為啥發展這么迅速?

關鍵點就在于它可以讓開發者將企業需要的各種應用及應用依賴文件封裝在Docker鏡像文件中。

然后在任何物理設備(Linux設備或Window設備等)上安裝運行實現虛擬化;

讓應用程序徹底脫離底層設備,可以在物理機之間靈活遷移部署,使運維工程師擺脫了繁瑣的環境部署,極大的提高了工作效率,同時減少了部署過程中的潛在風險。

03Docker容器的3大特點

輕量化:

一臺主機上運行的多個Docker容器可以共享主機操作系統內核;啟動迅速,只需占用很少的計算和內存資源。

標準開放:

Docker容器基于開放式標準,能夠在所有主流Linux版本、Microsoft Windows以及包括VM、裸機服務器和云在內的任何基礎設施上運行。

安全可靠:

Docker賦予應用的隔離性不僅限于彼此隔離,還獨立于底層的基礎設施。

Docker默認提供最強的隔離,因此應用出現問題,也只是單個容器的問題,而不會波及到整臺主機。

02

Docker容器 VS VM

Docker容器和傳統VM技術,在技術實現上有所不同。

01VM與Docker容器的邏輯組成

VM:

使用Hypervisor提供虛擬機的運行平臺,管理每個VM中操作系統的運行。

每個VM都要有自己的操作系統、應用程序和必要的依賴文件等。

Docker容器:

使用Docker引擎進行調度和隔離,提高了資源利用率,在相同硬件能力下可以運行更多的容器實例;每個容器擁有自己的隔離化用戶空間。

9daa67b2-5cc9-11ee-939d-92fbcf53809c.png

02Docker容器的優勢

相較于VM,Docker容器作為一種輕量級的虛擬化方式,在應用方面具有以下顯著優勢:

Docker容器可以在秒級時間內快速啟動和停止,相較傳統虛擬機顯著提升。

Docker容器對系統資源要求低,數千個Docker容器可同時運行在同一個主機上。

Docker容器通過類似Git的操作來方便用戶獲取和更新應用鏡像。

Docker容器通過Dockerfile配置文件實現自動化創建和靈活部署,提高工作效率。

Docker容器除了運行其中的應用之外,基本不消耗額外的系統資源,保證應用性能的同時,盡量減小系統開銷。

下圖可直觀了解Docker容器與傳統VM方式的區別:

9db2bf16-5cc9-11ee-939d-92fbcf53809c.png

03

Docker容器是如何工作的?

01Docker的三大組成要素

鏡像:

Docker鏡像是一個特殊的文件系統,除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的配置參數。

鏡像不包含任何動態數據,其內容在構建之后也不會被改變。

鏡像可以用來創建Docker容器,用戶可以使用設備上已有的鏡像來安裝多個相同的Docker容器。

容器:

鏡像創建的運行實例,Docker利用容器來運行應用。

每個容器都是相互隔離的、保證安全的平臺。

我們可以把容器看做是一個輕量級的Linux運行環境。

鏡像倉庫:

集中存放鏡像文件的地方。

用戶創建完鏡像后,可以將其上傳到公共倉庫或者私有倉庫,需要在另一臺主機上使用該鏡像時,只需要從倉庫上下載即可。

02Docker容器的運行邏輯

如下圖所示,Docker使用客戶端/服務器 (C/S) 架構模式。

Docker守護進程(Docker daemon)作為Server端接收Docker客戶端的請求,并負責創建、運行和分發Docker容器。

Docker守護進程一般在Docker主機后臺運行,用戶使用Docker客戶端直接跟Docker守護進程進行信息交互。

9dbfeaec-5cc9-11ee-939d-92fbcf53809c.png

Docker運行流程

接下來給你展開說說Docker的客戶端、主機和守護進程。(根據上面這張圖來看哈)

1、Docker客戶端:

用于和Docker守護進程(Docker Daemon)建立通信的客戶端。

Docker客戶端只需要向Docker服務器或者守護進程發出請求(Docker構建、Docker拉取和Docker啟動等指令),服務器或者守護進程將完成所有工作并返回結果。

如橙色流程所示,執行Docker構建指令會根據Docker文件構建一個鏡像存放于本地Docker主機。

如藍色流程所示,執行Docker拉取指令會從云端鏡像倉庫拉取鏡像至本地Docker主機或將本地鏡像推送至遠端鏡像倉庫。

如黑色流程所示,執行Docker啟動指令會將鏡像安裝至容器并啟動容器。

2、Docker主機:

一個物理或者虛擬的機器用于執行 Docker守護進程和容器。

3、Docker守護進程:

接收并處理Docker客戶端發送的請求,監測Docker API的請求和管理Docker對象,比如鏡像、容器、網絡和數據卷。

EC-IoT解決方案基于“邊緣智能+云化管理”平臺,物聯網關開放邊緣計算能力,快速適配不同行業邊緣智能數據處理需求。

實現關鍵業務本地毫秒級實時響應,完成數據本地聚合優化,高價值數據主動回傳云端。

邊緣計算網關基于“硬件平臺化,業務APP化”的設計理念,終端功能由APP軟件定義,用戶基于基礎服務接口開發自定義APP,并實現在邊緣計算網關的靈活部署,快速適應業務需求復雜多變的物聯場景。

邊緣計算網關支持部署Docker容器,用戶可在部署的容器上安裝自己的業務APP,同時網關設備提供各種eSDK接口供容器和APP調用其資源。

9dd2c504-5cc9-11ee-939d-92fbcf53809c.png

EC-IoT解決方案

9dda1f48-5cc9-11ee-939d-92fbcf53809c.png

網關開放性

04

容器的分類

容器技術架構主流的有兩種:

01一種是Linux Container,即LXC

LXC起源于Linux內核中的Cgroup和namespace的開發,以支持輕量級虛擬化操作系統環境,是一種操作系統級別的輕量級Linux容器。

提供輕量級的虛擬化隔離進程和資源:

它將應用軟件系統打包成一個軟件容器,內含應用軟件本身的代碼,以及所需要的操作系統核心庫。

它通過統一的名字空間和共用API(Application Programming Interface,應用程序編程接口)來分配不同軟件容器的硬件資源。

創造出應用程序的獨立沙箱運行環境,使得Linux用戶可以容易的創建和管理系統或應用容器。

02一種是Docker公司發布的Docker

Docker是在LXC基礎上進一步封裝的容器技術架構,它相當與一個應用程序級別的容器,也稱為APP容器。

9de3dc68-5cc9-11ee-939d-92fbcf53809c.png

即每個Docker容器是一個獨立的APP,Docker將APP打包成一個鏡像,在其它地方需要使用此APP時,直接獲取到此鏡像即可,方便部署與安裝。

如上圖所示,Docker與LXC實現容器都是通過Linux kernel的namespace與Cgroup機制實現。







審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux系統
    +關注

    關注

    4

    文章

    591

    瀏覽量

    27355
  • 虛擬機
    +關注

    關注

    1

    文章

    908

    瀏覽量

    28091
  • 裸機
    +關注

    關注

    0

    文章

    39

    瀏覽量

    6347
  • docker容器
    +關注

    關注

    0

    文章

    30

    瀏覽量

    3326
收藏 人收藏

    評論

    相關推薦

    如何在樹莓派上安裝Docker容器

    Pi官網 下載最新版本的Raspberry Pi OS。 使用SD卡寫入工具將鏡像寫入SD卡:可以使用 Etcher 等工具。 將SD卡插入樹莓派并啟動。 2. 更新系統 在安裝Docker之前
    的頭像 發表于 11-11 11:38 ?272次閱讀

    ARM平臺實現Docker容器技術

    技術,一個相同配置的主機往往可以運行更多數量的應用。 更快速的啟動時間:傳統的虛擬機技術啟動應用服務往往需要數分鐘,而Docker容器應用,由于直接運行于宿主內核,無需啟動完整的操作系統,因此可以做到秒
    發表于 07-25 14:36

    ARM平臺實現Docker容器技術

    ,一個相同配置的主機往往可以運行更多數量的應用。更快速的啟動時間:傳統的虛擬機技術啟動應用服務往往需要數分鐘,而Docker容器應用,由于直接運行于宿主內核,無需啟動完整的操作系統,因此可以做到秒級
    發表于 07-17 11:05

    Jtti:Docker會替代調虛機嗎

    嗎? 答案:不會。 原因:是有些遺留應用是運行在windows系統上的。有些應用可以直接遷移到虛擬上,但是不能直接在容器中運行。現在得趨勢是虛擬機和容器同時發展。容器的優點是敏捷性和高性能。而虛擬機的優點是更強的隔離性和運維的簡
    的頭像 發表于 07-12 14:38 ?277次閱讀
    Jtti:<b class='flag-5'>Docker</b>會替代調虛機嗎

    關于Docker 的清理命令集錦

    這篇文章主要介紹了Docker 清理命令集錦,需要的朋友可以參考下 復制代碼代碼如下: docker kill $(docker ps -a -q) ?刪除所有已經停止的
    的頭像 發表于 06-13 15:56 ?322次閱讀

    容器怎么完成和容器引擎的映射

    Javascript與Java應用程序綁定在一起,從而實現應用程序的自動化測試。 Docker 示例 docker run -d -p 宿主機端口:容器端口 鏡像名 例如,要將容器的8
    的頭像 發表于 06-06 15:18 ?327次閱讀

    適合大學生的鴻蒙開發板-Purple Pi OH之安裝Docker

    個開放源代碼的應用容器引擎,允許開發者打包他們的應用及依賴包到一個可移植的容器中,這個容器可以在任何支持Docker的Linux機器上運行。這里我們適配了purp
    的頭像 發表于 05-10 08:32 ?543次閱讀
    適合大學生的鴻蒙開發板-Purple Pi OH之安裝<b class='flag-5'>Docker</b>

    基于全志T113-i的Docker容器實現方案

    通過使用Docker,開發人員可以更容易地構建、交付和運行應用程序,同時確保應用程序的一致性及可移植性。它也使得應用程序的部署更加靈活、高效,因為它可以快速地啟動、停止和擴展容器,而不會影響其他容器或主機系統。
    發表于 04-19 09:45 ?817次閱讀
    基于全志T113-i的<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>實現方案

    Docker容器技術的安裝和使用

    通過Docker,開發人員可以更容易地構建、交付和運行應用程序,同時確保應用程序的一致性和可移植性。它也使得應用程序的部署更加靈活和高效,因為它可以快速地啟動、停止和擴展容器,而不會影響其他容器或主機系統。
    發表于 04-16 11:24 ?289次閱讀
    <b class='flag-5'>Docker</b><b class='flag-5'>容器</b>技術的安裝和使用

    Docker容器實現開機自動啟動策略

    如果你的容器依賴于其他服務(例如數據庫或其他容器),你需要確保這些服務在你的容器啟動之前就已經可用。這可以通過編排工具如Docker Com
    的頭像 發表于 03-11 10:33 ?2729次閱讀

    ARM平臺實現Docker容器技術

    什么是Docker? (1)Docker的架構 Docker是一個開源的應用容器引擎,讓開發者可打包他們的應用以及依賴包到一個可移植的鏡像中,然后發布到任何流行的Linux或Windo
    的頭像 發表于 03-07 13:48 ?762次閱讀
    ARM平臺實現<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>技術

    TLT507-Docker容器部署方法說明

    TLT507-Docker容器部署方法說明
    的頭像 發表于 01-26 09:49 ?435次閱讀
    TLT507-<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>部署方法說明

    RK3568-Docker容器部署方法說明

    RK3568-Docker容器部署方法說明
    的頭像 發表于 01-22 10:12 ?1290次閱讀
    RK3568-<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>部署方法說明

    redis容器部署并用編程演示sb整合

    Redis,并通過編程演示 Spring Boot 如何整合 Redis。 Redis 容器部署 Redis 可以通過容器部署,我們可以使用 Docker 來創建 Redis 容器。
    的頭像 發表于 12-05 10:08 ?386次閱讀

    Windows Docker部署Redis的流程

    由于 Docker 部署 Redis 后,Redis 容器中默認是沒有 redis.conf 配置文件的,需要自己手動掛在進去。
    的頭像 發表于 11-27 10:02 ?858次閱讀
    Windows <b class='flag-5'>Docker</b>部署Redis的流程