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 runtimeglobalizace používá a aspnetsdk 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 *-distrolessa *-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

Viz také