容器基底映像

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

Windows 提供四個可供使用者據以建置的容器基底映像。 每個基底映射都是不同類型的Windows或Windows伺服器作業系統、有不同的磁片使用量,而且有一組不同的Windows API 集。

映像探索

所有 Windows 容器基底映像都可透過 Docker Hub 探索。 Windows 容器基底映像本身是由 Microsoft Container Registry (MCR) (mcr.microsoft.com) 提供。 這就是 Windows 容器基底映像的提取命令為何看起來如下所示:

docker pull mcr.microsoft.com/windows/servercore:ltsc2022

MCR沒有自己的目錄體驗,而且是為了支援現有的目錄,例如Docker Hub。 由於 Azure 的全域磁碟使用量並與 Azure CDN 結合,MCR 才能提供一致且快速的映像提取體驗。 在 Azure 中執行其工作負載的 Azure 客戶,可受惠於網路效能增強功能以及與 MCR (Microsoft 容器映像的來源) 緊密整合、Azure Marketplace,還有 Azure 中可提供容器作為部署套件格式的擴充服務數目。

選擇基底映像

如何選擇所要依據的正確基底映像? 對於大部分的使用者而言,Windows Server CoreNanoserver 會是所要使用的最適當映像。 以下簡短描述每個基底映射:

  • Nano Server是新應用程式開發的 Ultralight Windows供應專案。
  • Server Core大小為中度,且適合用於「移動」Windows伺服器應用程式。
  • Windows是最大的映射,且具有工作負載的完整Windows API 支援。
  • Windows Server稍微小於Windows映射、具有完整的Windows API 支援,並可讓您使用更多伺服器功能。

指導方針

雖然您可以自由地以您想要使用哪一個影像為目標,但以下是一些可協助引導您選擇的指導方針:

  • 您的應用程式是否需要完整的 .NET Framework? 如果這個問題的答案是肯定的,您應該以 Windows Server Core 為目標。
  • 您是否正在建置以 .NET Core 為基礎的 Windows 應用程式? 如果這個問題的答案是肯定的,您應該以 Nanoserver 為目標。
  • Windows Server Core 容器映像是否遺漏您的應用程式所需的相依性? 如果這個問題的答案是肯定的,您應該嘗試以 Windows 為目標。 此映像遠大於其他基底映像,但是其含有許多核心 Windows 程式庫 (例如 GDI 程式庫)。
  • 您是 Windows 測試人員嗎? 如果是,您應該考慮使用測試人員版本的映像。 如需詳細資訊,請參閱下方的「Windows測試人員的基本映射」。
  • 您是否需要容器工作負載的 GPU 加速支援? 如果是,您應該考慮使用 Windows Server 映射來包含Windows容器工作負載的硬體加速。

提示

許多 Windows 使用者都想要容器化相依於 .NET 的應用程式。 除了此處所述的四個基底映像之外,Microsoft 還發佈了數個已預先設定熱門 Microsoft 架構的 Windows 容器映像,例如 .NET Framework 映像和 ASP .NET 映像。

Windows與 Windows Server

映射 Windows Server (3.1 GB) 從映射 (3.4 GB) 略小 Windows 。 Windows伺服器映射也會繼承 Server Core 映射的所有效能和可靠性改善、具有 GPU 支援,而且 IIS 連線沒有限制。 若要使用最新的 Windows Server 映射,您需要安裝 Windows Server 2022。 Windows映射不適用於 Windows Server 2022。

適用於 Windows 測試人員的基底映像

Microsoft 會提供每個容器基底映像的「測試人員」版本。 這些測試人員容器映像會包含我們的容器映像中最新且最棒的功能開發。 當您執行的主機是 Windows 測試人員版本 (Windows Insider 或 Windows Server Insider) 時,最好使用這些映像。 Docker Hub提供下列測試人員映射:

如需深入了解,請參閱透過 Windows 測試人員計畫使用容器

Windows Server Core 與 Nanoserver

Windows Server CoreNanoserver 是可作為目標的最常見基底映像。 這些映像的主要差異在於 Nanoserver 有一個明顯較小的 API 表面。 Nanoserver 映像中不存在 PowerShell、WMI 和 Windows 服務堆疊。

建置 Nanoserver 是為了提供足夠的 API 表面,以執行相依於 .NET Core 或其他新式開放原始碼架構的應用程式。 折衷使用較小的 API 表面,Nanoserver 映像的磁碟使用量明顯小於其餘的 Windows 基底映像。 請記住,您隨時都可以視需要在 Nano Server 之上新增層級。 如需範例,請參閱 .NET Core Nano Server Dockerfile