共用方式為


Windows 和容器

適用於:Windows Server 2025、Windows Server 2022、Windows Server 2019、Windows Server 2016

容器是一種跨內部部署和雲端中的不同環境封裝和執行 Windows 和 Linux 應用程式的技術。 容器提供了輕量型、隔離的環境,讓應用程式更容易開發、部署和管理。 容器可快速啟動和停止,使其適合需要快速適應變動需求的應用程式。 貨櫃的輕量特性也使其成為提升基礎設施密度與利用率的有用工具。

此圖形顯示容器在雲端或內部部署環境中執行的方式,並支援以幾乎任何語言撰寫的整合型應用程式或微服務。

Microsoft 容器生態系統

Microsoft 提供許多工具與平台,協助您在容器中開發與部署應用程式:

容器的運作方式

容器是隔離且輕量型的套件,可在主機操作系統上執行應用程式。 容器運行於主機作業系統的核心之上(你可以將其視為作業系統的埋藏管線),如下圖所示。

顯示如何在核心上執行容器的架構圖

雖然容器共用主機作業系統的核心,但容器無法不受限制地存取該核心。 然而,容器會取得隔離的 (在某些情況下為虛擬化) 的系統檢視。 例如,容器可以存取檔案系統和登錄的虛擬化版本,但任何變更只會影響容器,並在其停止時捨棄。 若要儲存數據,容器可以掛接持續性記憶體,例如 Azure 磁碟,或像是 Azure 檔案等檔案共用。

容器是建立在核心之上,但核心並未提供應用程式執行所需的所有 API 和服務。 大多數這些 API 和服務來自於在使用者模式下運行於核心之上的系統檔案(函式庫)。 由於容器與主機的使用者模式環境隔離,容器需要擁有這些使用者模式系統檔案的獨立副本。 這些檔案會被打包成所謂的基礎映像檔。 基礎映像是你建構容器的基礎層,提供核心未提供的作業系統服務。

容器與虛擬機器

與容器不同,虛擬機(VM)執行完整的作業系統——包括自身核心——如下圖所示。

顯示 VM 如何在主機作業系統旁執行完整作業系統的架構圖

容器和虛擬機各有其用途。 事實上,許多容器部署使用虛擬機作為主機作業系統,而非直接在硬體上運行,尤其是在雲端運行容器時。

欲了解更多關於這些互補技術的異同,請參見 容器與虛擬機

容器映像

你是從容器圖片建立所有容器。 容器映像是組織成位於本機計算機或遠端容器登錄層堆疊的檔案組合。 容器映像包含應用程式需要執行的使用者模式作業系統檔案。 映像檔同時包含應用程式的執行時、相依性,以及應用程式所需的任何設定檔。

Microsoft 提供數個映像 (稱為基底映像),您可將其作為建立自有容器映像的起點:

  • Windows - 包含一組完整的 Windows API 和系統服務 (沒有伺服器角色)。
  • Windows Server - 包含一組完整的 Windows API 和系統服務。
  • Windows Server Core - 較小的映像,其包含 Windows Server API 的子集 – 也就是完整的 .NET 架構。 它也包含大部分但不是全部的伺服器角色(例如傳真伺服器不包含)。
  • Nano Server - 最小的 Windows Server 映射,並包含 .NET Core API 和某些伺服器角色的支援。

容器映像是由一系列圖層所組成。 每一層都包含一組檔案,若覆疊在一起,即代表您的容器映像。 由於容器的分層特性,你不一定一定要針對基礎映像來建立 Windows 容器。 相反地,你可以鎖定已經擁有你想要框架的另一張圖片。 例如,.NET 小組會發佈帶有 .NET 核心執行階段的 .NET 核心映像。 這可讓使用者不需要重複進行安裝 .NET 核心的程序,而是可以重複使用此容器映像的層級。 .NET 核心映像本身是根據 Nano Server 所建立。

欲了解更多資訊,請參閱 容器基底圖片

容器使用者

開發人員的容器

容器可協助開發人員更快速地建置及提供更高品質的應用程式。 使用容器,開發人員可以建立在幾秒內部署的容器映像 (在不同的環境中都相同)。 容器的作用是跨小組共用程式碼及啟動開發環境的簡單機制,但不會影響主機檔案系統。

容器具有可攜性和廣泛性,可執行以任何語言撰寫的應用程式,而且與任何執行 Windows 10、1607 版或更新版本或 Windows Server 2016 或更新版本的電腦相容。 開發人員可以在其膝上型或桌上型電腦本機建立及測試容器,然後將相同的容器映像部署到其公司的私人雲端、公用雲端或服務提供者。 容器既有的靈活性可支援大規模、虛擬化雲端環境中的新型應用程式開發模式。 開發人員最有用的優點可能是隔離環境的能力,讓應用程式一律取得您指定的連結庫版本,以避免與相依性發生衝突。

IT 專業人員的容器

容器可協助系統管理員建立更容易更新和維護並可充分利用硬體資源的基礎結構。 IT 專業人員可以使用容器為其開發、品管及生產小組提供標準化的環境。 藉由使用容器,系統管理員可抽離作業系統安裝與基礎結構的差異。

你也可以利用容器的互動模式,在同一系統上執行命令列工具的衝突實例。

容器協調流程

在設定容器型環境時,協調器是基礎結構的重要部分。 在大規模管理容器化應用程式時,編排器是不可或缺的。 雖然你可以用 Docker 和 Windows 手動管理幾個容器,但應用程式通常會使用五個、十個甚至數百個容器,因此編排器變得不可或缺。

為了協助大規模管理生產環境中的容器,於是建立了容器協調器。 協調器可提供下列功能:

協調器可協助您大規模成長容器化應用程式,並提供下列功能:

  • 大規模部署
  • 工作負載排程
  • 健康狀態監視
  • 當節點失敗時容錯移轉
  • 擴大或縮小規模
  • 網路
  • 服務探索
  • 協調應用程式升級
  • 叢集節點親和性

有許多不同的協調器可供您用於 Windows 容器,以下是 Microsoft 提供的選項:

在 Windows 上試用容器

想開始在 Windows Server 或 Windows 10 上使用容器,請參考以下文章:

如需判斷哪些 Azure 服務適合你的情境,請參閱 Azure 容器服務選擇用於主機應用程式的 Azure 服務

資源

欲查看使用 Windows Server 容器的資源,請參閱以下資源: