这是indexloc提供的服务,不要输入任何密码

容器與虛擬機器 (VM)

藉助容器和虛擬機器 (VM) 這兩種基礎技術,應用程式可在隔離環境中運作。雖然兩者都具備資源管理功能和可攜性等優點,但架構、資源使用情形和用途大相逕庭。要選擇合適的技術,就需要考量確切的應用程式需求和業務目標。下文將說明容器和 VM 的主要差異,協助您做出明智的決策。

瞭解 VM 與容器的差異

什麼是容器?

容器是可攜式的輕量獨立可執行映像檔,內含軟體應用程式及其依附元件,可用於在不同環境 (例如開發、測試與實際工作環境) 中以一致的方式部署及執行應用程式。容器通常是透過 Kubernetes 等自動化調度管理平台從映像檔部署。這些平台可讓您大規模管理及部署容器。

與傳統的虛擬化方法相比,容器具備多種優勢。舉例來說,容器比 VM 更輕量,而且可攜性更高,可將單體分解為微服務。容器的管理和部署速度比 VM 快,因此在應用程式部署方面省錢又省時。

什麼是虛擬機器?

虛擬機器 (VM) 或訪客是作業系統執行個體,會使用管理程序共存於實體機器上。每個 VM 都有自己的作業系統、記憶體和其他資源,且這些資源與同一實體電腦上的其他 VM 隔離開來。如此一來,就能在同一個實體元件上執行多個作業系統,不會彼此干擾。

虛擬機器的建立及管理是使用管理程序軟體進行。管理程序是管理實體電腦資源並將其分配給虛擬機器的軟體。

容器與 VM 的差異

虛擬機器透過管理程序存取實體機器的硬體。管理程序會建立抽象層,允許 VM 存取 CPU、記憶體和儲存空間。相較之下,容器代表內含執行檔以及執行所需依附元件的套件。

也就是說,每個容器與其他容器會共用實體機器的硬體和作業系統核心。

因此,虛擬機器通常比容器耗用更大量資源。不過,虛擬機器還會提供高層級的隔離,這對安全性和法規遵循而言相當重要。容器比虛擬機器更輕量且更具可攜性。因此相當適合需要快速輕鬆部署且必須最佳化運算能力的應用程式。

請參閱下方的比較圖表,進一步瞭解容器和虛擬機器的差異:

功能

容器

虛擬機器


虛擬化層級


作業系統層級

硬體層級

作業系統


共用主機 OS 核心

訪客 OS (完整的 OS 執行個體)


大小

數 MB

數 GB

啟動時間



分鐘


資源使用情況

較低


較高


隔離


程序層級

硬體層級


可攜性

具高度可攜性


較不易於攜帶


管理


通常會以容器自動化調度管理工具 (例如 Kubernetes) 管理

以管理程序 (例如 VMware、KVM) 或雲端管理平台管理

用途

微服務、網頁應用程式、CI/CD 管道、雲端原生應用程式

舊版應用程式、需要高度隔離的應用程式、作業系統需求多元

功能

容器

虛擬機器


虛擬化層級


作業系統層級

硬體層級

作業系統


共用主機 OS 核心

訪客 OS (完整的 OS 執行個體)


大小

數 MB

數 GB

啟動時間



分鐘


資源使用情況

較低


較高


隔離


程序層級

硬體層級


可攜性

具高度可攜性


較不易於攜帶


管理


通常會以容器自動化調度管理工具 (例如 Kubernetes) 管理

以管理程序 (例如 VMware、KVM) 或雲端管理平台管理

用途

微服務、網頁應用程式、CI/CD 管道、雲端原生應用程式

舊版應用程式、需要高度隔離的應用程式、作業系統需求多元

透過 Google Cloud 解決業務難題

新客戶可以獲得價值 $300 美元的免費抵免額,盡情試用各項 Google Cloud 功能。
與 Google Cloud 銷售專員聯絡,深入探討您面臨的特殊難題。

容器與虛擬機器的架構

如要瞭解容器和 VM 的差異,不妨先比較兩者的架構:

  • 容器:
  • 共用主機 OS 核心:容器會使用主體機器的基礎作業系統核心。
  • 輕量化:與 VM 相比,容器的容量較小,需要的資源也較少。
  • 啟動速度更快:共用 OS 核心,因此啟動和停止速度較快。
  • 虛擬機器:
  • 執行完整的客體 OS:每個 VM 都有專屬的作業系統,與其他 VM 隔離開來。
  • 耗用較多資源:與容器相比,需要更多資源 (CPU、記憶體、儲存空間)。
  • 啟動速度較慢:由於需要載入客體 OS,因此啟動時間較長。

容器與虛擬機器的相似處

雖然容器和虛擬機器用途不同,但兩者並非互斥。事實上,這兩者經常搭配使用,用來打造強大且靈活的基礎架構。

  • 容器是主機上各自獨立但共用相同作業系統的應用程式或服務
  • 虛擬機器是實體主機上作業系統的獨立執行個體,可執行應用程式或服務

相較於虛擬機器,容器占用的空間較小。這是因為容器共用主機作業系統的核心,而虛擬機器則各自擁有自己的核心。因此,容器可更快速啟動和停止,耗用的資源也較少。虛擬機器彼此獨立,能防止攻擊在客體機器之間擴散。

容器和 VM

以下列舉幾種容器和虛擬機器的常見搭配用法:

在 VM 內執行容器,可享有額外的隔離層和安全防護。這種做法通常用於講求安全的環境,例如金融服務或醫療照護業。

  • 範例:銀行在 VM 中執行容器化應用程式,以遵守嚴格的法規要求。


在 VM 上部署 Kubernetes 叢集,有助於打造彈性且可擴充的基礎架構,輕鬆管理容器化應用程式,並同時享有兩項技術的優點。

  • 範例:一間大型企業使用 Google Compute Engine VM 代管 Kubernetes 叢集,為容器化工作負載提供可擴充且具備韌性的平台。


在混合雲環境中同時使用容器和 VM,即可在地端部署環境和雲端執行應用程式,滿足實際業務需求。

  • 範例:一間零售公司使用 VM 在地端部署環境執行核心業務應用程式,同時使用容器在 Google Cloud 部署新的雲端原生應用程式。


容器的用途

容器是多種用途的熱門選擇,包括:

  • 網站開發:容器可輕鬆部署至各種環境,例如開發、測試和實際工作環境等,因此相當適合用於進行網站開發
  • 微服務架構:容器可用來部署及管理個別服務,因此是微服務架構的理想選擇
  • 雲端運算::容器可依據需求輕鬆擴充或縮減資源,因此是雲端運算的首選
  • 持續整合和持續推送軟體更新 (CI/CD):容器可用於支援建構、測試及部署應用程式的自動化程序

容器是功能強大的工具,可用來改善應用程式的開發、部署和管理。容器可運用於多種用途,而且在雲端運算產業越來越受歡迎。

虛擬機器的用途

虛擬機器是多種用途的熱門選擇,包括:

  • 測試:虛擬機器可用於在採用沙箱機制的安全環境中測試新軟體。原因是如果軟體發生問題,即可輕鬆重設或刪除 VM。
  • 開發:虛擬機器可用於在不同作業系統上開發軟體。這對於需要在不同作業系統上測試軟體的開發人員或想要使用不同作業系統執行不同任務的使用者而言非常有用。
  • 隔離:虛擬機器可用來將應用程式彼此隔離。此特性非常適合用來進行安全性區隔和資源分割。
  • 雲端運算:虛擬機器是雲端運算的首選,因為可依據需求輕鬆向上擴充或縮減資源。
  • 災難復原:虛擬機器可進一步完善災難復原策略。這是因為當主體機器故障時,您可以透過備份輕鬆還原 VM。

虛擬機器是可用於多種用途的強大工具。它們不僅能夠在同一台電腦上執行多個作業系統和應用程式,還可用於在安全環境中測試新軟體,因此是一種具備成本效益的方式。

容器與虛擬機器的使用時機

要選擇容器或虛擬機器,取決於您的具體需求,請參考下方指南:

用途

建議

企業業務範例

微服務應用程式

容器


一間電子商務公司使用容器部署微服務平台,善用其獨立擴充的特性來加快開發週期。

翻新舊版應用程式

容器


一間金融機構將舊版應用程式容器化,然後遷移至雲端,成功提升可攜性並降低基礎架構成本。


持續整合/持續推送軟體更新 (CI/CD)

容器

一家軟體公司使用容器建立一致且可重複使用的 CI/CD 管道,確保能在不同環境中部署可靠的應用程式。


高度重視安全性的應用程式


虛擬機器


醫療服務供應商使用虛擬機器隔離機密的病患資料,以遵守嚴格的法規要求。


執行不同作業系統


虛擬機器

軟體開發人員使用虛擬機器,同時在不同作業系統 (Windows、Linux、macOS) 上測試應用程式。

需要大量資源的工作負載


虛擬機器

一家媒體公司使用虛擬機器執行影片編碼和轉碼工作負載,充分善用專屬 CPU 和記憶體資源。

用途

建議

企業業務範例

微服務應用程式

容器


一間電子商務公司使用容器部署微服務平台,善用其獨立擴充的特性來加快開發週期。

翻新舊版應用程式

容器


一間金融機構將舊版應用程式容器化,然後遷移至雲端,成功提升可攜性並降低基礎架構成本。


持續整合/持續推送軟體更新 (CI/CD)

容器

一家軟體公司使用容器建立一致且可重複使用的 CI/CD 管道,確保能在不同環境中部署可靠的應用程式。


高度重視安全性的應用程式


虛擬機器


醫療服務供應商使用虛擬機器隔離機密的病患資料,以遵守嚴格的法規要求。


執行不同作業系統


虛擬機器

軟體開發人員使用虛擬機器,同時在不同作業系統 (Windows、Linux、macOS) 上測試應用程式。

需要大量資源的工作負載


虛擬機器

一家媒體公司使用虛擬機器執行影片編碼和轉碼工作負載,充分善用專屬 CPU 和記憶體資源。

展開下一步行動

運用價值 $300 美元的免費抵免額和超過 20 項一律免費的產品,開始在 Google Cloud 中建構產品與服務。