Freigeben über


Welches Betriebssystem soll mit .NET-Containern angezielt werden?

Tipp

Dieser Inhalt ist ein Auszug aus dem eBook .NET Microservices Architecture for Containerized .NET Applications, verfügbar auf .NET Docs oder als kostenlose herunterladbare PDF, die offline gelesen werden kann.

.NET Microservices-Architektur für containerisierte .NET-Anwendungen eBook-Cover-Thumbnail.

Angesichts der Vielfalt der von Docker unterstützten Betriebssysteme und der Unterschiede zwischen .NET Framework und .NET 8 sollten Sie je nach verwendeten Framework auf ein bestimmtes Betriebssystem und bestimmte Versionen abzielen.

Für Windows können Sie Windows Server Core oder Windows Nano Server verwenden. Diese Windows-Versionen bieten unterschiedliche Merkmale (IIS in Windows Server Core im Vergleich zu einem selbst gehosteten Webserver wie Kestrel in Nano Server), der möglicherweise von .NET Framework oder .NET 8 benötigt wird.

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

In Abbildung 3-1 können Sie die mögliche Betriebssystemversion abhängig vom verwendeten .NET Framework sehen.

Diagramm, das zeigt, welches Betriebssystem mit welchen .NET-Containern verwendet werden soll.

Abbildung 3-1. Betriebssysteme, die je nach Versionen von .NET Framework als Ziel verwendet werden sollen

Wenn Sie ältere .NET Framework-Anwendungen bereitstellen, müssen Sie Windows Server Core als Ziel verwenden, die mit älteren Apps und IIS kompatibel sind, aber ein größeres Image aufweist. Bei der Bereitstellung von .NET 8-Anwendungen können Sie Windows Nano Server als Ziel verwenden, das cloudoptimiert ist, Kestrel verwendet und kleiner ist und schneller gestartet wird. Sie können auch Linux ansprechen, Debian, Alpine und andere unterstützen.

Sie können auch Ihr eigenes Docker-Image erstellen, wenn Sie eine andere Linux-Distrotro verwenden möchten oder in denen Sie ein Image mit Versionen wünschen, die von Microsoft nicht bereitgestellt werden. Sie können z. B. ein Image mit ASP.NET Core erstellen, das auf dem herkömmlichen .NET Framework und Windows Server Core ausgeführt wird. Dies ist ein nicht häufiges Szenario für Docker.

Wenn Sie der Dockerfile-Datei den Imagenamen hinzufügen, können Sie je nach verwendeten Tag das Betriebssystem und die Version auswählen, wie in den folgenden Beispielen gezeigt:

Abbildung Kommentare
mcr.microsoft.com/dotnet/runtime:8.0 .NET 8 multi-architecture: Unterstützt Linux und Windows Nano Server je nach Docker-Host.
mcr.microsoft.com/dotnet/aspnet:8.0 ASP.NET Core 8.0-Multiarchitektur: Unterstützt Linux und Windows Nano Server je nach Docker-Host.
Das Aspnetcore-Bild verfügt über 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