docker知識點

来源:https://www.cnblogs.com/vinic-xxm/archive/2019/08/20/11383634.html
-Advertisement-
Play Games

什麼是虛擬機? 虛擬化是在Host操作系統之上導入Guest操作系統的技術。這種技術最初是一個啟示,因為它允許開發人員在同一主機上運行的不同虛擬機中運行多個操作系統。這消除了對額外硬體資源的需求。 虛擬機或虛擬化的優點是: 多個操作系統可以在同一臺機器上運行 在出現故障的情況下,維護和恢復很容易 由 ...


什麼是虛擬機?

虛擬化是在Host操作系統之上導入Guest操作系統的技術。這種技術最初是一個啟示,因為它允許開發人員在同一主機上運行的不同虛擬機中運行多個操作系統。這消除了對額外硬體資源的需求。

虛擬機或虛擬化的優點是:

多個操作系統可以在同一臺機器上運行
在出現故障的情況下,維護和恢復很容易
由於對基礎設施的需求減少,總擁有成本也較低

在圖中,您可以看到有一個主機操作系統,其上運行著3個客戶機操作系統,它們只是虛擬機。

虛擬機的缺點

運行多個虛擬機會導致性能不穩定,因為客戶機操作系統運行在主機操作系統之上,主機操作系統將擁有自己的內核以及一組庫和依賴項。這占用了大量的系統資源,即硬碟,處理器,尤其是RAM。
管理程式不如主機操作系統有效
啟動過程很長,需要時間
這些缺點導致了一種稱為容器化的新技術的出現。現在讓我告訴你容器化。

什麼是集裝箱化?

容器化是將虛擬化引入操作系統級別的技術
它為操作系統帶來了抽象,也是一種虛擬化
容器化效率更高,因為這裡沒有客戶操作系統,並且利用主機的操作系統,在需要時共用相關的庫和資源,這與虛擬機不同。
特定於應用程式的二進位文件和容器庫在主機內核上運行,這使得處理和執行非常快。
它們比虛擬機輕巧且速度快。

什麼是Docker?

Docker是一個容器化平臺,它以Container的形式將您的應用程式及其所有依賴項打包在一起,以確保您的應用程式在任何環境中無縫運行。

每個應用程式都將在一個單獨的容器上運行,並擁有自己的一組庫和依賴項。
它還確保存在進程級隔離,這意味著每個應用程式都獨立於其他應用程式,從而使開發人員確信他們可以構建不會相互干擾的應用程式。

雖然Docker容器有時被稱為“輕量級VM”,但它們不是VM(虛擬機)。兩者都用於不同的目的,因此不能取代另一個。它們的底層架構是Docker與虛擬機的不同之處。雖然VM基於伺服器虛擬化技術,但Docker使用容器虛擬化。

讓我們看看Docker和虛擬機之間的主要區別是什麼

Docker和虛擬機之間的主要區別

OS支持

Docker容器和虛擬機的基本架構在操作系統支持方面有所不同。容器托管在具有主機操作系統的單個物理伺服器中,主機操作系統在它們之間共用。
另一方面,虛擬機在每個VM內部具有主機OS和單獨的客戶OS。無論主機操作系統如何,客戶操作系統都可以是任何東西 - Linux或Windows。
Docker容器適用於您希望在單個OS內核上運行多個應用程式的情況。但是,如果您的應用程式或服務需要在不同的OS風格上運行,則需要VM。
在容器之間共用主機操作系統使它們非常輕,並幫助它們在幾秒鐘內啟動。因此,與VM相比,管理容器系統的開銷非常低。

安全

在Docker中,由於主機內核在容器之間共用,因此容器技術可以訪問內核子系統。因此,單個易受攻擊的應用程式可以破解整個主機伺服器。
因此,出於安全原因,不建議在Docker容器中提供對應用程式的root訪問許可權並以超級用戶許可權運行它們。
另一方面,VM是具有自己的內核和安全功能的唯一實例。因此,它們可以運行需要更多特權和安全性的應用程式。
在Bobcares,我們在Docker中實施其他安全措施,如SELinux和AppArmor,以保護容器並防止它們相互破解或主機內核崩潰。

可移植性

Docker容器是可以運行所需應用程式的自包含容器。由於它們沒有單獨的客戶操作系統,因此可以輕鬆地跨不同平臺移植它們。
與VM相比,容器可以在幾秒鐘內啟動和停止,因為它們具有輕質結構。這使得在伺服器中快速部署Docker容器變得更加容易。
另一方面,VM是具有自己的OS的隔離伺服器實例。它們不能跨多個平臺移植而不會引發相容性問題。
對於必須在不同平臺上開發和測試應用程式的開發目的,Docker容器因此是理想的選擇。

性能

Docker和虛擬機用於不同的目的,因此同等地衡量它們的性能是不公平的。但是它們的輕量級架構使得Docker容器比虛擬機的資源密集程度更低。
因此,與VM相比,容器可以非常快地啟動,因為後者必須載入整個OS才能啟動。資源使用情況也因兩者而異。
在容器中,CPU,記憶體,I / O等資源使用情況因負載或流量而異。與VM的情況不同,不需要永久地將資源分配給容器。
與VM相比,擴展和複製容器也是一項簡單的任務,因為不需要在其中安裝操作系統。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.智能快遞櫃(開篇) 2.智能快遞櫃(終端篇) 3.智能快遞櫃(通信篇-HTTP) 4.智能快遞櫃(通信篇-SOCKET) 5.智能快遞櫃(通信篇-Server程式) 6.智能快遞櫃(平臺篇) 7.智能快遞櫃(APP及微信公眾號) 8.智能快遞櫃SDK(聯網型鎖板) 9.智能快遞櫃SDK(串口型鎖 ...
  • 什麼是gRPC "官方" 的定義: gRPC is a modern open source high performance RPC framework that can run in any environment. It can efficiently connect services in ...
  • 下麵學習Windows Server 2008配置系統安全策略 在工作組中的電腦本地安全策略有 用戶策略,密碼策略,密碼過期預設42天 服務賬戶設置成永不過期,帳戶鎖定策略,本地策略,審核策略,電腦記錄哪些安全事件 最後在域環境中使用組策略配置電腦安全。 1.在工作組中的安全策略,打開本地安全 ...
  • 背景 By 魯迅 By 高爾基 說明: 1. Kernel版本:4.14 2. ARM64處理器 3. 使用工具:Source Insight 3.5, Visio 1. 介紹 子系統負責在運行時對CPU頻率和電壓的動態調整,以達到性能和功耗的平衡,它也叫 。 原理:CMOS電路中功耗與電壓的平方成 ...
  • 最近由於業務系統新需求的需要,我們平臺需要將供應商G提供一類數據轉換格式後提供給客戶K。比較頭疼是供應商G提供的數據都是在Windows下使用Excel存儲的,而客戶K先前與我們相關對接人員商定的數據類型必須使用utf-8的txt文件,並且由於客戶K程式處理的需要,並附帶生成一個與該數據文件匹配的校 ...
  • Windows下的Linux子系統安裝,WSL 2下配置docker 安裝WSL 2需要Windows 10版本是Build 18917或更高,首先先確認系統版本已升級。 在“啟用或關閉Windows功能”中啟用以下兩個選項:Windows虛擬機平臺、適用於Linux的Windows子系統。 啟用這 ...
  • windows系統: 部署了一個Tomcat8.5.15,bin目錄下startup.bat執行,結果提示Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these envi ...
  • 查看zabbix_agentd.log時出現下列錯誤 [root@4gronghe_110 ~]# tail /var/log/zabbix/zabbix_agentd.log 1266:20140523:063554.157 no active checks on server [127.0.0. ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...