Sdílet prostřednictvím


Na jaký operační systém cílit pomocí .NET kontejnerů

Návod

Tento obsah je výňatek z eBooku, architektury mikroslužeb .NET pro kontejnerizované aplikace .NET, které jsou k dispozici na .NET Docs nebo jako zdarma ke stažení PDF, které lze číst offline.

eBook o architektuře mikroslužeb .NET pro kontejnerizované aplikace .NET, miniatura na obálce.

Vzhledem k rozmanitosti operačních systémů podporovaných Dockerem a rozdíly mezi rozhraním .NET Framework a .NET 8 byste měli cílit na konkrétní operační systém a konkrétní verze v závislosti na používaném rozhraní.

Pro Windows můžete použít Windows Server Core nebo Windows Nano Server. Tyto verze Windows poskytují různé charakteristiky (IIS ve Windows Server Core oproti samostatně hostovanému webovému serveru jako je Kestrel na Nano Server), které může potřebovat rozhraní .NET Framework nebo .NET 8, respektive.

Pro Linux je k dispozici a podporováno více distribucí v oficiálních imagích Dockeru v .NET (jako debian).

Na obrázku 3-1 vidíte možnou verzi operačního systému v závislosti na použitém rozhraní .NET Framework.

Diagram znázorňující, jaký operační systém se má použít s kontejnery .NET

Obrázek 3-1 Operační systémy určené pro cílení v závislosti na verzích rozhraní .NET Framework

Při nasazování starších aplikací rozhraní .NET Framework musíte cílit na Windows Server Core, kompatibilní se staršími aplikacemi a službou IIS, ale má větší image. Při nasazování aplikací .NET 8 můžete cílit na Windows Nano Server, který je optimalizovaný pro cloud, používá Kestrel a je menší a spustí se rychleji. Můžete také cílit na Linux, podporovat Debian, Alpine a další.

Můžete také vytvořit vlastní image Dockeru v případech, kdy chcete použít jinou distribuci Linuxu nebo kde chcete image s verzemi, které microsoft neposkytuje. Můžete například vytvořit image s ASP.NET Core spuštěnou v tradiční rozhraní .NET Framework a Windows Server Core, což není tak běžný scénář pro Docker.

Když do souboru Dockerfile přidáte název image, můžete v závislosti na použité značce vybrat operační systém a verzi, jak je znázorněno v následujících příkladech:

Obrázek Komentáře
mcr.microsoft.com/dotnet/runtime:8.0 .NET 8 s více architekturami: Podporuje Linux a Windows Nano Server v závislosti na hostiteli Dockeru.
mcr.microsoft.com/dotnet/aspnet:8.0 ASP.NET Core 8.0 s více architekturami: Podporuje Linux a Windows Nano Server v závislosti na hostiteli Dockeru.
Obraz aspnetcore má několik optimalizací pro ASP.NET Core.
mcr.microsoft.com/dotnet/aspnet:8.0-bullseye-slim Pouze modul runtime .NET 8 v distribuci Debianu s Linuxem
mcr.microsoft.com/dotnet/aspnet:8.0-nanoserver-1809 .NET 8 runtime pouze na Windows Nano Serveru (Windows Server verze 1809)