Freigeben über


Mit .NET-Containern angezieltes Betriebssystem

Tipp

Diese Inhalte sind ein Auszug aus dem eBook „.NET Microservices Architecture for Containerized .NET Applications“, verfügbar unter .NET Docs oder als kostenlos herunterladbare PDF-Datei, die offline gelesen werden kann.

.NET Microservices Architecture for Containerized .NET Applications eBook cover thumbnail.

Aufgrund der verschiedenen von Docker unterstützten Betriebssysteme und der Unterschiede zwischen .NET Framework und .NET 8 sollten Sie abhängig vom verwendeten Framework ein bestimmtes Betriebssystem und bestimmte Versionen als Ziel festlegen.

Für Windows können Sie Windows Server Core oder Windows Nano Server verwenden. Diese Windows-Versionen bieten unterschiedliche Eigenschaften (IIS in Windows Server Core im Vergleich zu einem selbstgehosteten Webserver wie Kestrel in Nano Server), die jeweils für .NET Framework oder .NET 8 erforderlich sind.

Für Linux sind mehrere Distributionen (z.B. Debian) verfügbar und werden in offiziellen .NET Docker-Images unterstützt.

In Abbildung 3-1 wird die mögliche Betriebssystemversion in Abhängigkeit vom verwendeten .NET Framework dargestellt.

Diagram showing what OS to use with which .NET containers.

Abbildung 3-1. In Abhängigkeit der Version von .NET Framework anzuzielende Betriebssysteme

Bei der Bereitstellung von .NET Framework-Legacyanwendungen muss auf Windows Server Core abgezielt werden, das mit Legacyanwendungen und IIS kompatibel ist, aber ein größeres Image aufweist. Bei der Bereitstellung von .NET 8-Anwendungen kann Windows Nano Server als Zielplattform verwendet werden. Dieses Betriebssystem ist für die Cloud optimiert, verwendet Kestrel, ist schlanker und startet schneller. Auch Linux ist als Zielplattform geeignet. Debian, Alpine und andere Distributionen werden unterstützt.

Sie können ebenfalls Ihr eigenes Docker-Image erstellen, wenn Sie eine andere Linux-Distribution verwenden oder wenn Sie ein Image mit nicht von Microsoft bereitgestellten Versionen verwenden möchten. Sie könnten beispielsweise ein Image erstellen, bei dem ASP.NET Core unter dem herkömmlichen .NET Framework und Windows Server Core ausgeführt wird. Dabei handelt es sich um ein für Docker ungewöhnliches Szenario.

Wenn Sie den Namen des Images zu Ihrer Dockerfile-Datei hinzufügen, können Sie das Betriebssystem und die Version wie in den folgenden Beispielen dargestellt in Abhängigkeit vom verwendeten Tag auswählen:

Bild Kommentare
mcr.microsoft.com/dotnet/runtime:8.0 Mehrere .NET 8-Architekturen: Unterstützt Linux und Windows Nano Server, abhängig vom Docker-Host.
mcr.microsoft.com/dotnet/aspnet:8.0 Mehrere ASP.NET Core 8.0-Architekturen: Unterstützt Linux und Windows Nano Server, abhängig vom Docker-Host.
Das aspnetcore-Image enthält einige Optimierungen für ASP.NET Core.
mcr.microsoft.com/dotnet/aspnet:8.0-bullseye-slim Unter Linux Debian nur .NET 8-Runtime
mcr.microsoft.com/dotnet/aspnet:8.0-nanoserver-1809 Unter Windows Nano Server (Windows Server 1809) nur .NET 8-Runtime