Sdílet prostřednictvím


Operační systém, na který mají cílit kontejnery .NET

Tip

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.

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

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 (SLUŽBA IIS ve Windows Serveru Core oproti místnímu webovému serveru, jako je Kestrel na Nano Serveru), které může potřebovat rozhraní .NET Framework nebo .NET 8.

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 showing what OS to use with which .NET containers.

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:

Image 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.
Obrázek 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)