Windows 和容器

適用于:Windows Server 2022、Windows Server 2019、Windows Server 2016

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

Graphic showing how containers can run in the cloud or on-premises, supporting monolithic apps or microservices written in nearly any language.

若要檢視已規劃且目前可用功能的藍圖,請參閱 Windows Server 容器藍圖。 此外,請參閱事件以檢視Windows容器的最新影片簡報和部落格文章。

Microsoft 容器生態系統

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

容器的運作方式

容器是隔離的輕量型套件,可在主機作業系統上執行應用程式。 容器建置在主機作業系統的核心 (之上,可視為作業系統) 的內嵌管,如下圖所示。

Architectural diagram showing how containers run on top of the kernel

當容器共用主機作業系統的核心時,該容器不會取得其自由的存取權。 然而,容器會取得隔離的 (在某些情況下為虛擬化) 的系統檢視。 例如,容器可以存取虛擬化版本的檔案系統和登錄,但任何變更都只會影響容器並在容器停止時予以捨棄。 若要儲存資料,容器可以掛接持續性儲存體,例如 Azure 磁碟或檔案共用 (包括 Azure 檔案)。

容器是以核心為基礎,但核心並未提供應用程式執行時需要的所有 API 和服務,這些大多數是由以使用者模式在核心之上執行的系統檔案 (程式庫) 所提供。 由於容器與主機的使用者模式環境隔離,因此容器需要自己的使用者模式系統檔案複本,而這些檔案會封裝成所謂的基底映像。 基底映像可作為建立容器的基礎層,並為其提供核心所未提供的作業系統服務。 但我們稍後會詳細討論容器映像。

容器與虛擬機器

與容器相比,虛擬機器 (VM) 會執行完整的作業系統 (包括它自己的核心),如下圖所示。

Architectural diagram showing how VMs run a complete operating system beside the host operating system

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

如需這些互補技術的相似性與差異詳細資訊,請參閱容器與虛擬機器

容器映像

所有容器都是從容器映像建立而來。 容器映射是組織成位於本機電腦或遠端容器登錄層堆疊的檔案組合。 容器映射包含支援應用程式所需的使用者模式作業系統檔案、應用程式的任何執行時間或相依性,以及應用程式需要正確執行的任何其他組態檔。

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

  • Windows - 包含一組完整的 Windows API 和系統服務 (沒有伺服器角色)。
  • Windows伺服器- 包含一組完整的Windows API 和系統服務。
  • Windows Server Core - 較小的映像,其包含 Windows Server API 的子集 – 也就是完整的 .NET 架構。 它也包含大部分但並非所有伺服器角色 (例如傳真伺服器不包含) 。
  • Nano Server - 最小的Windows伺服器映射,並包含 .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 伺服器容器的資源: