Dela via


Vilket operativsystem som ska riktas mot .NET-containrar

Dricks

Det här innehållet är ett utdrag från eBook, .NET Microservices Architecture for Containerized .NET Applications, tillgängligt på .NET Docs eller som en kostnadsfri nedladdningsbar PDF som kan läsas offline.

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

Med tanke på mångfalden av operativsystem som stöds av Docker och skillnaderna mellan .NET Framework och .NET 8 bör du rikta in dig på ett specifikt operativsystem och specifika versioner beroende på vilket ramverk du använder.

För Windows kan du använda Windows Server Core eller Windows Nano Server. Dessa Windows-versioner har olika egenskaper (IIS i Windows Server Core jämfört med en lokalt installerad webbserver som Kestrel i Nano Server) som kan behövas av .NET Framework respektive .NET 8.

För Linux är flera distributioner tillgängliga och stöds i officiella .NET Docker-avbildningar (till exempel Debian).

I bild 3–1 kan du se den möjliga operativsystemversionen beroende på vilket .NET-ramverk som används.

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

Bild 3-1. Operativsystem som ska riktas beroende på versioner av .NET-ramverket

När du distribuerar äldre .NET Framework-program måste du rikta in dig på Windows Server Core, kompatibelt med äldre appar och IIS, men det har en större avbildning. När du distribuerar .NET 8-program kan du rikta in dig på Windows Nano Server, som är molnoptimerad, använder Kestrel och är mindre och startar snabbare. Du kan också rikta in dig på Linux, stödja Debian, Alpine och andra.

Du kan också skapa en egen Docker-avbildning i fall där du vill använda en annan Linux-distribution eller där du vill ha en avbildning med versioner som inte tillhandahålls av Microsoft. Du kan till exempel skapa en avbildning med ASP.NET Core som körs på det traditionella .NET Framework och Windows Server Core, vilket är ett inte så vanligt scenario för Docker.

När du lägger till avbildningsnamnet i Dockerfile-filen kan du välja operativsystem och version beroende på vilken tagg du använder, som i följande exempel:

Bild Kommentarer
mcr.microsoft.com/dotnet/runtime:8.0 .NET 8 multi-architecture: Stöder Linux och Windows Nano Server beroende på Docker-värden.
mcr.microsoft.com/dotnet/aspnet:8.0 ASP.NET Core 8.0 multi-architecture: Stöder Linux och Windows Nano Server beroende på Docker-värden.
Aspnetcore-avbildningen har några optimeringar för ASP.NET Core.
mcr.microsoft.com/dotnet/aspnet:8.0-bullseye-slim .NET 8 runtime-only på Linux Debian-distribution
mcr.microsoft.com/dotnet/aspnet:8.0-nanoserver-1809 .NET 8 runtime-only på Windows Nano Server (Windows Server version 1809)