コンテナーの基本イメージ

適用対象: Windows Server 2022、Windows Server 2019、Windows Server 2016

Windows には、ユーザーが作成できるコンテナーの基本イメージが 4 つ用意されています。 基本イメージごとに、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 は、新しいアプリケーション開発用の超軽量な Windows 製品です。
  • Server Core のサイズは中程度であり、Windows Server アプリの "リフト アンド シフト" に適したオプションです。
  • Windows は最大のイメージであり、ワークロードに対して Windows API がフル サポートされます。
  • Windows Server は Windows イメージよりも若干小さく、Windows API がフル サポートされるため、より多くのサーバー機能を使用できます。

ガイドライン

使用したいイメージを自由にターゲットに設定できますが、ここでは選択する際のガイドラインをいくつか示します。

  • アプリケーションに完全な .NET フレームワークは必要ですか。 この質問への答えが「はい」の場合、Windows Server Core をターゲットにすることをお勧めします。
  • .NET Core に基づいて Windows アプリを構築していますか。 この質問への答えが「はい」の場合、Nanoserver をターゲットにすることをお勧めします。
  • アプリに必要な依存関係が、Windows Server Core コンテナー イメージに不足していますか。 この質問への答えが「はい」の場合、Windows をターゲットにしてみることをお勧めします。 このイメージは、他の基本イメージよりもサイズがはるかに大きく、多数のコア Windows ライブラリ (GDI ライブラリなど) が含まれています。
  • Windows Insider ですか。 「はい」の場合、Insider バージョンのイメージを使用することを検討してください。 詳細については、後述する「Windows Insider の基本イメージ」を参照してください。
  • コンテナー ワークロードに対して GPU アクセラレーションのサポートが必要ですか? 「はい」の場合は、Windows Server イメージを使用して、Windows コンテナーのワークロードにハードウェア アクセラレータを含めることを検討してください。

ヒント

.NET に依存しているアプリケーションをコンテナー化したいと考える Windows ユーザーは多数います。 Microsoft は、ここで説明する 4 つの基本イメージに加えて、.NET framework イメージや ASP .NET イメージなどの一般的な Microsoft フレームワークを使用して事前構成されたいくつかの Windows コンテナー イメージを公開しています。

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 Insider の基本イメージ

Microsoft は、各コンテナーの基本イメージの "Insider" バージョンを提供しています。 これらの Insider コンテナー イメージには、コンテナー イメージの最新かつ最高の機能開発が含まれています。 Windows の Insider バージョン (Windows Insider または Windows Server Insider) であるホストを実行している場合は、これらのイメージを使用することをお勧めします。 以下の Insider イメージを Docker Hub から入手できます。

詳細については、「Windows Insider Program でコンテナーを使用する」を参照してください。

Windows Server Core と Nanoserver

Windows Server CoreNanoserver は、ターゲットとして最も一般的な基本イメージです。 これらのイメージの主な違いは、Nanoserver の API サーフェスが大幅に小さいことです。 PowerShell、WMI、および Windows サービス スタックは、Nanoserver イメージにはありません。

Nanoserver は、.NET Core またはその他の最新のオープン ソース フレームワークに依存するアプリを実行するのに十分な API サーフェス を提供するために構築されました。 小さい API サーフェスとのトレードオフとして、Nanoserver イメージは、残りの Windows 基本イメージよりもディスク上のフットプリントが大幅に小さくなっています。 Nano Server 上には、いつでもレイヤーを追加できることに注意してください。 この例については、.NET Core の Nano Server の Dockerfile をご覧ください。