.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
, aspnet
en 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 |