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.
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.
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 |