Delen via


.NET-containerinstallatiekopieën

.NET biedt verschillende containerinstallatiekopieën voor verschillende scenario's. In dit artikel worden de verschillende typen afbeeldingen beschreven en hoe ze worden gebruikt. Zie de Docker Hub: Microsoft .NET-opslagplaats voor meer informatie over officiële installatiekopieën.

Tagschema

Vanaf .NET 8 zijn containerinstallatiekopieën pragmatischer in hoe ze worden onderscheiden. De volgende kenmerken worden gebruikt om afbeeldingen te onderscheiden:

  • Het doelframework moniker (TFM) van de app.
  • Het besturingssysteem, de versie en de architectuur.
  • Het afbeeldingstype (bijvoorbeeld runtime, aspnet). sdk
  • De afbeeldingsvariant (bijvoorbeeld *-distroless, *-chiseled).
  • De afbeeldingsfunctie (bijvoorbeeld *-aot, *-extra).

Afbeeldingen die zijn geoptimaliseerd voor grootte

De volgende afbeeldingen zijn gericht op het resultaat van de kleinste mogelijke afbeeldingsgrootte:

  • Alpine
  • Mariner distroless
  • Ubuntu beiteld

Deze afbeeldingen zijn kleiner, omdat ze geen globaliseringsafhankelijkheden bevatten, zoals ICU of tzdata. Deze installatiekopieën werken alleen met apps die zijn geconfigureerd voor de invariante modus voor globalisatie. Als u een app wilt configureren voor invariante globalisatie, voegt u de volgende eigenschap toe aan het projectbestand:

<PropertyGroup>
  <InvariantGlobalization>true</InvariantGlobalization>
</PropertyGroup>

Tip

SDK-installatiekopieën worden niet geproduceerd voor *-distroless typen installatiekopieën of *-chiseled installatiekopieën. Samengestelde afbeeldingen zijn het kleinste aspnet aanbod voor Core CLR.

Afbeeldingen die geschikt zijn voor globalisatie

In containers geplaatste apps waarvoor globalisatie is vereist, wordt de grootte van de installatiekopieën vergroot, omdat ze globalisatieafhankelijkheden vereisen. Ubuntu- en Debian-installatiekopieën hebben ICU en tzdata al geïnstalleerd.

De tzdata-afhankelijkheid is toegevoegd aan de volgende afbeeldingen:

  • runtime-deps:8.0-jammy
  • runtime-deps:8.0-bookworm-slim

Deze globalisatietactiek wordt gebruikt door runtime, aspneten sdk afbeeldingen met dezelfde tag.

Belangrijk

Het toevoegen van tzdata aan Debian-boekwormafbeeldingen heeft geen praktisch effect, tenzij er een update is van tzdata (dat nog niet is opgenomen in Debian), waarna .NET-installatiekopieën een nieuwere tzdata bevatten.

Sommige pakketten zijn nog steeds optioneel, zoals Kerberos, LDAP en msquic. Deze pakketten zijn alleen vereist in nichescenario's.

Op scenario's gebaseerde installatiekopieën

De installatiekopieën van runtime-deps hebben een aanzienlijke waarde, met name omdat ze een standaardgebruikers- en poortdefinitie bevatten. Ze zijn handig om te gebruiken voor zelfstandige en systeemeigen AOT-scenario's. Het leveren van runtime-deps installatiekopieën die nodig zijn voor de runtime - en SDK-installatiekopieën is echter niet voldoende om alle denkbare scenario's mogelijk te maken of optimale afbeeldingen te genereren.

De behoefte aan runtime-deps uitbreiding op systeemeigen AOT- *-distrolessen *-chiseled afbeeldingstypen. Voor elk besturingssysteem worden drie installatiekopieën opgegeven (allemaal in runtime-deps). Bekijk het volgende voorbeeld met behulp van *-chiseled afbeeldingen:

  • 8.0-jammy-chiseled: Afbeeldingen voor Core CLR, geen tzdata of ICU.
  • 8.0-jammy-chiseled-aot: Installatiekopieën voor systeemeigen AOT, geen tzdata, ICU of stdc++.
  • 8.0-jammy-chiseled-extra: Afbeelding voor zowel Core CLR als systeemeigen AOT, bevat tzdata, ICU en stdc++.

In termen van scenario's:

De 8.0-jammy-chiseled afbeeldingen vormen de basis voor runtime en aspnet afbeeldingen van dezelfde tag. Standaard kunnen systeemeigen AOT-apps de 8.0-jammy-chiseled-aot installatiekopieën gebruiken, omdat deze zijn geoptimaliseerd voor grootte. Systeemeigen AOT-apps en Core CLR zelfstandige/individuele bestands-apps waarvoor globalisatiefunctionaliteit is vereist, kunnen worden gebruikt 8.0-jammy-chiseled-extra.

Alpine- en Mariner-afbeeldingen maken gebruik van hetzelfde schema.

Notitie

Debian- en Ubuntu-installatiekopieën (niet-beiteld) runtime-deps hebben geen meerdere varianten.

Systeemeigen AOT-containerinstallatiekopieën

Systeemeigen AOT-installatiekopieën worden gepubliceerd naar de SDK-opslagplaats en getagd met het -aot achtervoegsel. Met deze installatiekopieën kunt u systeemeigen AOT-apps bouwen. Ze worden gemaakt voor distributies met overeenkomende runtime-deps:*-aot afbeeldingen. Deze installatiekopieën zijn groot, meestal twee keer zo groot als gewone SDK-installatiekopieën.

AOT-installatiekopieën worden gepubliceerd voor:

  • Alpine
  • Zeeman
  • Ubuntu

Zie Systeemeigen AOT-implementatie voor meer informatie

Docker Hub-opslagplaatsen

Alle officiële Microsoft-installatiekopieën voor .NET worden gepubliceerd naar de microsoft-dotnet Docker Hub-organisatie. Houd rekening met de volgende opslagplaatsen.

.NET stabiele opslagplaatsen voor installatiekopieën:

Opslagplaats voor installatiekopieën Afbeelding
sdk mcr.microsoft.com/dotnet/sdk
aspnet mcr.microsoft.com/dotnet/aspnet
Runtime mcr.microsoft.com/dotnet/runtime
runtime-deps mcr.microsoft.com/dotnet/runtime-deps
monitor mcr.microsoft.com/dotnet/monitor
aspire-dashboard mcr.microsoft.com/dotnet/aspire-dashboard
Monsters mcr.microsoft.com/dotnet/samples

.NET-opslagplaatsen voor nachtinstallatiekopieën:

Opslagplaats voor installatiekopieën Afbeelding
nightly-aspnet mcr.microsoft.com/dotnet/nightly/aspnet
nachtmonitor mcr.microsoft.com/dotnet/nightly/monitor
nightly-runtime-deps mcr.microsoft.com/dotnet/nightly/runtime-deps
nightly-runtime mcr.microsoft.com/dotnet/nightly/runtime
nightly-sdk mcr.microsoft.com/dotnet/nightly/sdk
nightly-aspire-dashboard mcr.microsoft.com/dotnet/nightly/aspire-dashboard

Opslagplaatsen voor .NET Framework-installatiekopieën:

Opslagplaats voor installatiekopieën Afbeelding
framework mcr.microsoft.com/dotnet/framework
framework-aspnet mcr.microsoft.com/dotnet/framework/aspnet
framework-runtime mcr.microsoft.com/dotnet/framework/runtime
framework-samples mcr.microsoft.com/dotnet/framework/samples
framework-sdk mcr.microsoft.com/dotnet/framework/sdk
framework-wcf mcr.microsoft.com/dotnet/framework/wcf

Zie ook