Delen via


.NET-containerinstallatiekopieën

.NET biedt verschillende container images 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 images.

Taggingschema

Vanaf .NET 8 zijn container images pragmatischer in de manier waarop ze worden onderscheiden. De volgende kenmerken worden gebruikt om afbeeldingen te onderscheiden:

  • Het doelframeworknaam (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 bereiken van de kleinste mogelijke afbeeldingsgrootte.

  • Alpien
  • Mariner distroless
  • Ubuntu gestroomlijnd

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

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

Fooi

SDK-images worden niet geproduceerd voor *-distroless- of *-chiseled-imagetypen. Samengestelde afbeeldingen zijn het kleinste aspnet aanbod voor Core CLR-.

Afbeeldingen die geschikt zijn voor globalisatie

In containers geplaatste apps waarvoor globalisering is vereist vergroten de grootte van de installatiekopieën, omdat ze globaliseringsafhankelijkheden 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 bookworm-images heeft geen praktisch effect, tenzij er een update is van tzdata (die nog niet is opgenomen in Debian), op dat moment zouden .NET-images 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 afbeeldingen

De runtime-deps--installatiekopieën 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. Hoewel het verstrekken van alleen de runtime-deps afbeeldingen die benodigd zijn door de runtime en SDK afbeeldingen niet voldoende is om alle denkbare scenario's te ondersteunen of optimale beelden te genereren.

De noodzaak voor runtime-deps is ook van toepassing op systeemeigen AOT-, *-distroless- en *-chiseled afbeeldingstypen. Voor elk besturingssysteem worden er drie imagevarianten geleverd (allemaal in runtime-deps). Bekijk het volgende voorbeeld met behulp van *-chiseled afbeeldingen:

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

Wat betreft scenario's:

De 8.0-jammy-chiseled-afbeeldingen vormen de basis voor de runtime- en aspnet-afbeeldingen van dezelfde tag. Standaard kunnen systeemeigen AOT-apps de 8.0-jammy-chiseled-aot-afbeelding gebruiken, omdat deze geoptimaliseerd is qua grootte. Systeemeigen AOT-apps en zelfstandige Core CLR-apps met één bestand waarvoor globalisatiefuncties vereist zijn, kunnen gebruikmaken van 8.0-jammy-chiseled-extra.

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

Notitie

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

Native AOT-containerafbeeldingen

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

AOT-afbeeldingen worden gepubliceerd voor:

  • Alpien
  • Zeeman (marinier)
  • Ubuntu

Zie Native AOT-implementatievoor meer informatie.

Docker Hub-opslagplaatsen

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

.NET stabiele opslagplaatsen voor installatiekopieën:

Afbeeldingbibliotheek Beeld
sdk mcr.microsoft.com/dotnet/sdk
aspnet mcr.microsoft.com/dotnet/aspnet
runtime- mcr.microsoft.com/dotnet/runtime
runtime-afhankelijkheden mcr.microsoft.com/dotnet/runtime-deps
bewaken mcr.microsoft.com/dotnet/monitor
aspire-dashboard mcr.microsoft.com/dotnet/aspire-dashboard
voorbeelden mcr.microsoft.com/dotnet/samples

.NET-opslagplaatsen voor 's nachts uitgevoerde installatiekopieën:

Afbeeldingenbibliotheek Beeld
nightly-aspnet mcr.microsoft.com/dotnet/nightly/aspnet
nachtelijke monitor 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
nachtelijke-aspire-dashboard mcr.microsoft.com/dotnet/nightly/aspire-dashboard

.NET Framework-opslagplaatsen voor afbeeldingen :

Afbeeldingenarchief Beeld
raamwerk mcr.microsoft.com/dotnet/framework
framework-aspnet mcr.microsoft.com/dotnet/framework/aspnet
framework-runtime mcr.microsoft.com/dotnet/framework/runtime
frameworkvoorbeelden mcr.microsoft.com/dotnet/framework/samples
framework-sdk mcr.microsoft.com/dotnet/framework/sdk
framework-wcf mcr.microsoft.com/dotnet/framework/wcf

Zie ook