什麼是容器化應用程式?

容器化應用程式是在稱為容器的獨立程式碼套件中執行的應用程式,容器包括應用程式在任何主機作業系統上可能需要執行的所有依附元件,例如程式庫、二進位檔、設定檔和架構,全都收錄到一個輕量的執行檔中。

將應用程式容器化的程序會將不同功能與硬體依附元件和其他軟體元件分開,以加快應用程式開發的速度、效率和安全性。容器可以在任何主機作業系統中執行,而且能夠與其他軟體和硬體物件區隔開來,因此屬於多功能工具,只要完成一次建構作業,就能在任何位置執行應用程式。

無論是 Google 搜尋、YouTube 或 Gmail,Google 中的所有項目都會透過容器執行。Kubernetes 和 Knative 是在 Google 開發的開放原始碼平台,也是廣為用於管理容器和應用程式的工具。  

容器化應用程式的優點

隔離

由於每個容器化應用程式都存在於與其他應用程式和系統元件隔離開的獨立環境中,應用程式中的錯誤不會影響其他應用程式或本機系統,因此能限制錯誤事件的影響範圍。

可攜性

容器化應用程式與作業系統分開運作,因此可移植至幾乎任何環境,例如實體伺服器、虛擬機器、開發人員的個人機器或雲端。

輕巧

與虛擬機器不同,容器不會攜帶某個版本的作業系統,因此比其他虛擬化方法更輕量、效率更高。

效率

容器化應用程式可共用機器的運算核心和資源,而容器中的應用程式層可由多個容器共用,因此容器化應用程式所需的資源較少,可讓多個容器在同一個機器或虛擬環境中運作。

擴充性

您可以快速新增額外的容器執行個體,以處理增加的應用程式負載。

應用程式容器化技術如何運作?

容器化應用程式的運作方式是執行軟體 (容器) 的可執行套件,其中包含在主機作業系統上層執行應用程式所需的一切應用程式依附元件。容器化應用程式包含多個物件,包括構成容器映像檔的所有應用程式元件 (例如框架、程式庫),然後由容器引擎執行這些映像檔。容器映像檔是容器系統的藍圖或架構。應用程式執行時,系統會將映像檔的內容複製到容器執行個體,並可用於應用程式內任意數量的容器。容器映像檔是根據名為開放容器倡議 (OCI) 的業界標準建立,有助於容器的共用性和相容性。

容器引擎是容器的執行階段環境,也是執行容器化應用程式的平台。容器引擎接受指令,透過用戶端工具建立、管理及啟動容器。最熱門的容器引擎是 Docker 或 CRI-O 等工具。

自動化調度管理工具可用來管理容器化應用程式,特別是在具有多個容器的環境中。如 Kubernetes 等自動化調度管理工具可部署、管理及擴充容器

容器與虛擬機器的比較

容器和虛擬機器的功能類似,但容器往往使用較少資源,也更具彈性。

虛擬機器可讓多個應用程式和作業系統共用單一實體電腦或伺服器的資源,並同時執行 (例如共用同一部電腦的 Windows 和 Linux)。虛擬機器會攜帶其檔案、依附元件,以及自己的作業系統副本。

與虛擬機器不同,容器不會攜帶作業系統副本。因此,容器和虛擬機器之間的主要差異在於,容器化使用運算資源時更有效率。容器執行階段會改為安裝在電腦或伺服器的現有作業系統上,讓所有容器共用相同的作業系統。

應用程式容器的類型

最基本的容器分為兩種類型:系統容器應用程式容器

應用程式容器

應用程式容器是無狀態的解決方案,通常會執行單一程序。當我們討論容器化應用程式時,這類應用程式會執行應用程式容器,而每個容器都會處理處理程序,而多個容器都由 Kubernetes 等工具進行自動化調度管理。

市面上有各種應用程式容器。Docker 是最普遍的,但還有數種其他類型。容器的開放原始碼開發作業是由 OCI 代管。

系統容器

系統容器 (又稱為「作業系統容器」) 是較舊的系統,功能與虛擬機器類似,但沒有相同的運算負擔。這套系統是獨立系統,不含容器映像檔,也不需要特殊軟體。系統容器通常用於單體式舊版應用程式。

以下列舉幾種容器化應用程式的常見引擎和工具類型:

Docker

最常見的容器化開放原始碼平台。您可透過 Docker 建立和操作以 Linux 為基礎的容器。

LXC

LXC 是 LinuxContainers.org 的開放原始碼專案,可讓應用程式使用單一 Linux kernel 做為作業系統,同時執行多個 Linux 系統。

rkt

rkt 又稱為 Rocket,是以應用程式為基礎的容器引擎,可讓您精細控管容器或作為 Docker 容器系統中的特定元件。

CRI-O

適用於容器管理平台 Kubernetes 的容器執行階段介面 (CRI),可用來啟用與 OCI 相容的執行階段。通常用於在使用 Kubernetes 時取代 Docker。

透過 Google Cloud 解決業務難題

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

運用容器化邁出下一步

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