共用方式為


容器和 Docker 簡介

小提示

此內容是適用於容器化 .NET 應用程式的電子書.NET 微服務架構摘錄,可在 .NET Docs 或免費下載的 PDF 中取得,可脫機讀取。

.NET 微服務架構的容器化 .NET 應用程式電子書封面縮圖。

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

就像運送容器允許貨物由船舶、火車或卡車運輸,而不論貨物在裡面,軟體容器都會作為軟體部署的標準單位,其中包含不同的程式碼和相依性。 如此一來,容器化軟體可讓開發人員和IT專業人員在幾乎沒有修改或完全不修改的環境中進行部署。

容器也會在共用OS上彼此隔離應用程式。 容器化應用程式會在容器主機上執行,而該主機接著會在OS(Linux或 Windows) 上執行。 因此,容器的使用量明顯小於虛擬機 (VM) 映像。

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

此圖顯示 VM 或伺服器中執行的四個容器。

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

進行容器化的另一個優點是可擴縮性。 您可以透過建立新容器來快速擴展以應付短期工作。 從應用程式的觀點來看,具現化映像(建立容器)類似於具現化服務或 Web 應用程式等程式。 不過,為了可靠性,當您跨多部主機伺服器執行相同映像的多個實例時,通常希望每個容器(映射實例)在不同的主機伺服器或不同容錯網域中的 VM 中執行。

簡言之,容器提供隔離、可移植性、靈活度、延展性,以及整個應用程式生命週期工作流程的控制優點。 最重要的優點是開發與 Ops 之間所提供的環境隔離。