容器基底映像

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

Windows 提供四個可供使用者據以建置的容器基底映像。 每個基底映像都是不同類型的 Windows 或 Windows Server 作業系統、具有不同的磁碟使用量,以及一組不同的 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 Server 應用程式的絕佳選項。
  • Windows 是最大的映像,且具有工作負載的完整 Windows API 支援。
  • Windows Server 比 Windows 映像小一點,具有完整的 Windows API 支援,並可讓您使用更多伺服器功能。

指導方針

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

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

提示

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

Windows 與 Windows Server

映射 Windows Server (3.1 GB) 的大小 Windows 略小(3.4 GB)。 Windows Server 映射也會從 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