ヒント
このコンテンツは、.NET Docs で入手できる、またはオフラインで読み取ることができる無料のダウンロード可能な PDF として入手できる、コンテナー化された .NET アプリケーションの電子ブックである .NET マイクロサービス アーキテクチャからの抜粋です。
Docker でサポートされるオペレーティング システムの多様性と .NET Framework と .NET 8 の違いを考えると、使用しているフレームワークに応じて、特定の OS と特定のバージョンをターゲットにする必要があります。
Windows の場合は、Windows Server Core または Windows Nano Server を使用できます。 これらの Windows バージョンでは、.NET Framework または .NET 8 で必要になる可能性があるさまざまな特性 (Windows Server Core の IIS と Nano Server の Kestrel のようなセルフホステッド Web サーバー) が提供されます。
Linux では、公式の .NET Docker イメージ (Debian など) で複数のディストリビューションが利用でき、サポートされています。
図 3-1 では、使用されている .NET フレームワークに応じて、使用可能な OS バージョンを確認できます。
図 3-1 .NET Framework のバージョンに応じて対象となるオペレーティング システム
レガシ .NET Framework アプリケーションを展開する場合は、レガシ アプリや IIS と互換性のある Windows Server Core をターゲットにする必要がありますが、イメージは大きくなります。 .NET 8 アプリケーションを展開する場合、クラウドに最適化され、Kestrel が使用され、小さくて起動速度が速い Windows Nano Server をターゲットにすることができます。 また、Linux をターゲットにして、Debian、Alpine などをサポートすることもできます。
別の Linux ディストリビューションを使用する場合や、Microsoft が提供していないバージョンのイメージが必要な場合は、独自の Docker イメージを作成することもできます。 たとえば、従来の .NET Framework と Windows Server Core で実行されている ASP.NET Core を使用してイメージを作成できます。これは Docker の一般的なシナリオではありません。
Dockerfile ファイルにイメージ名を追加するときに、次の例のように、使用するタグに応じてオペレーティング システムとバージョンを選択できます。
画像 | コメント |
---|---|
mcr.microsoft.com/dotnet/runtime:8.0 | .NET 8 マルチアーキテクチャ: Docker ホストに応じて Linux と Windows Nano Server をサポートします。 |
mcr.microsoft.com/dotnet/aspnet:8.0 | ASP.NET Core 8.0 マルチアーキテクチャ: Docker ホストに応じて Linux と Windows Nano Server をサポートします。 aspnetcore イメージには、ASP.NET Core の最適化がいくつか含まれています。 |
mcr.microsoft.com/dotnet/aspnet:8.0-bullseye-slim | Linux Debian ディストリビューションでの .NET 8 ランタイムのみ |
mcr.microsoft.com/dotnet/aspnet:8.0-nanoserver-1809 | Windows Nano Server 上の .NET 8 ランタイムのみ (Windows Server バージョン 1809) |
.NET