Image kontejneru .NET
.NET poskytuje různé image kontejneru pro různé scénáře. Tento článek popisuje různé typy obrázků a způsob jejich použití. Další informace o oficiálních imagích najdete v centru Dockeru: úložiště Microsoft .NET .
Schéma označování
Počínaje platformou .NET 8 jsou image kontejnerů více pragmatičtější v tom, jak se rozlišují. K rozlišení obrázků se používají následující charakteristiky:
- Moniker cílové architektury (TFM) aplikace.
- Operační systém, verze a architektura.
- Typ obrázku (například
runtime
,aspnet
,sdk
). - Varianta obrázku (například
*-distroless
,*-chiseled
). - Funkce obrázku (například
*-aot
,*-extra
).
Obrázky optimalizované pro velikost
Následující obrázky se zaměřují na nejmenší možnou velikost obrázku:
- Alpine
- Námořní distroless
- Ubuntu chiseled
Tyto image jsou menší, protože nezahrnují závislosti globalizace, jako jsou ICU nebo tzdata. Tyto image fungují jenom s aplikacemi, které jsou nakonfigurované pro invariantní režim globalizace. Pokud chcete nakonfigurovat aplikaci pro invariantní globalizaci, přidejte do souboru projektu následující vlastnost:
<PropertyGroup>
<InvariantGlobalization>true</InvariantGlobalization>
</PropertyGroup>
Tip
Image sady SDK nejsou vytvořeny pro *-distroless
typy imagí *-chiseled
. Složené obrázky jsou nejmenší aspnet
nabídkou core CLR.
Obrázky vhodné pro globalizaci
Kontejnerizované aplikace, které vyžadují globalizaci, nafouknou velikost image, protože vyžadují závislosti globalizace. Image Ubuntu a Debian už mají nainstalované ICU a tzdata.
Závislost tzdata byla přidána do následujících imagí:
runtime-deps:8.0-jammy
runtime-deps:8.0-bookworm-slim
Tuto taktiku runtime
globalizace používá a aspnet
sdk
obrázky se stejnou značkou.
Důležité
Přidání tzdata do obrázků Debian bookworm nemá žádný praktický účinek, pokud není k dispozici aktualizace tzdata (která ještě není součástí Debianu), v tomto okamžiku by obrázky .NET obsahovaly novější tzdata.
Některé balíčky jsou stále volitelné, například Kerberos, LDAP a msquic. Tyto balíčky jsou vyžadovány pouze ve scénářích výklenek.
Image založené na scénářích
Image runtime-deps mají významnou hodnotu, zejména proto, že obsahují standardní definice uživatelů a portů. Jsou vhodné pro samostatné a nativní scénáře AOT. Pouze poskytování runtime-deps
imagí potřebných modulem runtime a imagí sady SDK však nestačí k tomu, aby bylo možné povolit všechny imaginovatelné scénáře nebo generovat optimální image.
Potřeba runtime-deps
rozšíření také na nativní typy AOT *-distroless
a *-chiseled
image. Pro každý operační systém jsou k dispozici tři varianty imagí (všechny v runtime-deps
). Podívejte se na následující příklad použití *-chiseled
obrázků:
8.0-jammy-chiseled
: Image pro Core CLR, no tzdata nebo ICU.8.0-jammy-chiseled-aot
: Image pro nativní AOT, no tzdata, ICU nebo stdc++.8.0-jammy-chiseled-extra
: Image pro Core CLR i nativní AOT, zahrnuje tzdata, ICU a stdc++.
Z hlediska scénářů:
Image 8.0-jammy-chiseled
jsou základem pro runtime
obrázky stejné značky a aspnet
obrázky. Nativní aplikace AOT můžou ve výchozím nastavení image používat 8.0-jammy-chiseled-aot
, protože jsou optimalizované pro velikost. Nativní aplikace AOT a aplikace core CLR s vlastním obsahem nebo jednosouborové aplikace, které vyžadují funkce globalizace, mohou používat 8.0-jammy-chiseled-extra
.
Obrázky Alpine a Mariner používají stejné schéma.
Poznámka:
Image Debianu a Ubuntu (bez šikání) runtime-deps
nemají více variant.
Nativní image kontejneru AOT
Nativní image AOT se publikují v úložišti sady SDK a označí se příponou -aot
. Tyto image umožňují vytvářet nativní aplikace AOT. Vytvoří se pro distribuce s odpovídajícími runtime-deps:*-aot
obrázky. Tyto image jsou velké, obvykle dvakrát větší než běžné image sady SDK.
Image AOT se publikují pro:
- Alpine
- Námořník
- Ubuntu
Další informace najdete v tématu Nativní nasazení AOT.
Úložiště centra Dockeru
Všechny oficiální image Microsoftu pro .NET jsou publikované v organizaci Microsoft-dotnet Docker Hub. Zvažte následující úložiště.
Stabilní úložiště imagí .NET:
Úložiště imagí | Image |
---|---|
sdk | mcr.microsoft.com/dotnet/sdk |
aspnet | mcr.microsoft.com/dotnet/aspnet |
runtime | mcr.microsoft.com/dotnet/runtime |
modul runtime -deps | mcr.microsoft.com/dotnet/runtime-deps |
monitor | mcr.microsoft.com/dotnet/monitor |
aspire-dashboard | mcr.microsoft.com/dotnet/aspire-dashboard |
vzorky | mcr.microsoft.com/dotnet/samples |
Noční úložiště imagí .NET:
Úložiště imagí | Image |
---|---|
nightly-aspnet | mcr.microsoft.com/dotnet/nightly/aspnet |
noční monitor | mcr.microsoft.com/dotnet/nightly/monitor |
nightly-runtime-deps | mcr.microsoft.com/dotnet/nightly/runtime-deps |
noční běh | mcr.microsoft.com/dotnet/nightly/runtime |
nightly-sdk | mcr.microsoft.com/dotnet/nightly/sdk |
noční řídicí panel | mcr.microsoft.com/dotnet/nightly/aspire-dashboard |
Úložiště imagí rozhraní .NET Framework:
Úložiště imagí | Image |
---|---|
architektura | mcr.microsoft.com/dotnet/framework |
framework-aspnet | mcr.microsoft.com/dotnet/framework/aspnet |
framework-runtime | mcr.microsoft.com/dotnet/framework/runtime |
ukázky architektury | mcr.microsoft.com/dotnet/framework/samples |
framework-sdk | mcr.microsoft.com/dotnet/framework/sdk |
framework-wcf | mcr.microsoft.com/dotnet/framework/wcf |