Share via


容器和 Docker 簡介

提示

本內容節錄自《容器化 .NET 應用程式的 .NET 微服務架構》電子書,可以從 .NET Docs 取得,也可以免費下載 PDF 離線閱讀。

.NET Microservices Architecture for Containerized .NET Applications eBook cover thumbnail.

容器化是一種軟體開發方法,在此方法中,應用程式或服務、其相依性及其組態 (抽象化為部署資訊清單檔) 會封裝在一起,成為一個容器映像。 容器化應用程式可以當作一個單位來測試,並以容器映像執行個體形式部署至主機作業系統 (OS)。

就像是貨櫃允許利用船隻、火車或貨車運輸貨物,而不論內含哪種貨物,軟體容器是軟體部署的標準單位,可包含不同的程式碼和相依性。 以此方式容器化軟體可讓開發人員和 IT 專業人員只需要一點修改或不需要任何修改,就能跨環境進行部署。

容器也可讓不同的應用程式在共用 OS 上彼此隔離。 容器化應用程式會在容器主機上執行,再於 OS (Linux 或 Windows) 上執行。 因此,容器所需空間明顯小於虛擬機器 (VM) 映像。

每個容器可以執行整個 Web 應用程式或服務,如圖 2-1 所示。 在此範例中,Docker 主機是容器主機,而 App1、App2、Svc 1 和 Svc 2 是容器化應用程式或服務。

Diagram showing four containers running in a VM or a server.

圖 2-1. 在容器主機上執行的多個容器

進行容器化的另一個優點是可擴縮性。 您可以建立適用於短期工作的新容器來快速擴增。 從應用程式的觀點來看,具現化映像 (建立容器) 類似於具現化像是服務或 Web 應用程式的程序。 不過,為了可靠起見,當您在多部主機伺服器之間執行相同映像的多個執行個體時,您通常需要在不同的主機伺服器或 VM 中,或是不同的容錯網域中,執行各個容器 (映像執行個體)。

簡單來說,容器在整個應用程式生命週期工作流程中,提供隔離、可攜性、彈性、延展性和控制能力等優點。 最重要的優點是可為開發與作業提供環境的隔離。