Udostępnij za pośrednictwem


Jakiego systemu operacyjnego należy używać docelowo z kontenerami .NET

Napiwek

Ta zawartość jest fragmentem książki eBook, architektury mikrousług platformy .NET dla konteneryzowanych aplikacji platformy .NET dostępnych na platformie .NET Docs lub jako bezpłatnego pliku PDF, który można odczytać w trybie offline.

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

Biorąc pod uwagę różnorodność systemów operacyjnych obsługiwanych przez platformę Docker oraz różnice między programem .NET Framework i platformą .NET 8, należy określić konkretny system operacyjny i określone wersje w zależności od używanej platformy.

W przypadku systemu Windows można użyć systemu Windows Server Core lub Windows Nano Server. Te wersje systemu Windows zapewniają różne cechy (usługi IIS w systemie Windows Server Core w porównaniu z własnym serwerem internetowym, takim jak Kestrel w systemie Nano Server), które mogą być wymagane odpowiednio przez program .NET Framework lub .NET 8.

W przypadku systemu Linux wiele dystrybucji jest dostępnych i obsługiwanych w oficjalnych obrazach platformy .NET Docker (takich jak Debian).

Na rysunku 3–1 można zobaczyć możliwą wersję systemu operacyjnego w zależności od używanego programu .NET Framework.

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

Rysunek 3–1. Systemy operacyjne przeznaczone do kierowania w zależności od wersji programu .NET Framework

Podczas wdrażania starszych aplikacji .NET Framework musisz kierować system Windows Server Core, zgodny ze starszymi aplikacjami i usługami IIS, ale ma większy obraz. Podczas wdrażania aplikacji platformy .NET 8 można kierować system Windows Nano Server, który jest zoptymalizowany pod kątem chmury, używa biblioteki Kestrel i jest mniejszy i uruchamiany szybciej. Można również kierować do systemu Linux, obsługiwać Debian, Alpine i inne.

Możesz również utworzyć własny obraz platformy Docker w przypadkach, w których chcesz użyć innej dystrybucji systemu Linux lub gdzie chcesz utworzyć obraz z wersjami, które nie są dostarczane przez firmę Microsoft. Możesz na przykład utworzyć obraz z programem ASP.NET Core uruchomionym w tradycyjnych programach .NET Framework i Windows Server Core, co nie jest tak typowym scenariuszem dla platformy Docker.

Po dodaniu nazwy obrazu do pliku Dockerfile możesz wybrać system operacyjny i wersję w zależności od używanego tagu, jak w następujących przykładach:

Obraz Komentarze
mcr.microsoft.com/dotnet/runtime:8.0 Architektura wielowarstwowa platformy .NET 8: obsługuje systemy Linux i Windows Nano Server w zależności od hosta platformy Docker.
mcr.microsoft.com/dotnet/aspnet:8.0 ASP.NET Core 8.0 z wieloma architekturami: obsługuje systemy Linux i Windows Nano Server w zależności od hosta platformy Docker.
Obraz aspnetcore ma kilka optymalizacji dla ASP.NET Core.
mcr.microsoft.com/dotnet/aspnet:8.0-bullseye-slim Środowisko uruchomieniowe platformy .NET 8 w dystrybucji Debian systemu Linux
mcr.microsoft.com/dotnet/aspnet:8.0-nanoserver-1809 Środowisko uruchomieniowe .NET 8 tylko w systemie Windows Nano Server (Windows Server w wersji 1809)