Udostępnij przez


Obrazy kontenerów platformy .NET

Platforma .NET udostępnia różne obrazy kontenerów dla różnych scenariuszy. W tym artykule opisano różne typy obrazów i sposób ich użycia. Aby uzyskać więcej informacji na temat oficjalnych obrazów, zobacz repozytorium Docker Hub: Microsoft .NET.

Schemat tagowania

Począwszy od platformy .NET 8, obrazy kontenerów są bardziej pragmatyczne w sposobie ich rozróżniania. Do rozróżniania obrazów służą następujące cechy:

  • Identyfikator docelowego frameworku (TFM) aplikacji.
  • System operacyjny, wersja i architektura.
  • Typ obrazu (na przykład runtime, aspnet, sdk).
  • Wariant obrazu (na przykład *-distroless, *-chiseled).
  • Funkcja obrazu (na przykład *-aot, *-extra).

Obrazy zoptymalizowane pod kątem rozmiaru

Poniższe obrazy zostały zoptymalizowane pod kątem jak najmniejszego rozmiaru.

  • Alpejski
  • Mariner bez dystrybucji
  • Ubuntu dłutowane

Te obrazy są mniejsze, ponieważ nie obejmują zależności związanych z globalizacją, takich jak ICU lub tzdata. Te obrazy działają tylko z aplikacjami skonfigurowanymi do niezmiennego trybu globalizacji. Aby skonfigurować aplikację pod kątem niezmiennej globalizacji, dodaj następującą właściwość do pliku projektu:

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

Napiwek

Obrazy zestawu SDK nie są tworzone dla typów obrazów *-distroless ani *-chiseled. Obrazy złożone to najmniejsza oferta aspnet dla Core CLR.

Obrazy odpowiednie do globalizacji

Konteneryzowane aplikacje, które wymagają globalizacji, zawyżają rozmiar obrazu, ponieważ wymagają zależności globalizacji. Obrazy z systemami Ubuntu i Debian mają już zainstalowane pliki ICU i tzdata.

Zależność tzdata została dodana do następujących obrazów:

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

Ta taktyka globalizacji jest używana przez obrazy runtime, aspneti sdk z tym samym tagiem.

Ważny

Dodanie tzdata do obrazów Debian bookworm nie ma praktycznego efektu, chyba że istnieje aktualizacja tzdata (która nie jest jeszcze zawarta w Debianie), w którym to momencie obrazy .NET będą zawierać nowszą wersję tzdata.

Niektóre pakiety są nadal opcjonalne, takie jak Kerberos, LDAP i msquic. Te pakiety są wymagane tylko w scenariuszach niszowych.

Obrazy oparte na scenariuszach

Obrazy środowiska uruchomieniowego mają znaczącą wartość, zwłaszcza że zawierają standardowe definicje użytkownika i portu. Są one wygodne w przypadku scenariuszy samodzielnej i natywnej AOT. Jednak samo udostępnianie obrazów runtime-deps potrzebnych dla środowiska uruchomieniowego i zestawu SDK nie jest wystarczające, aby umożliwić korzystanie z wszelkich możliwych scenariuszy ani generowanie optymalnych obrazów.

Potrzeba runtime-deps obejmuje również natywne typy obrazów AOT, *-distrolessi *-chiseled. Dla każdego systemu operacyjnego dostępne są trzy warianty obrazu (wszystkie w runtime-deps). Rozważmy następujący przykład przy użyciu obrazów *-chiseled:

  • 8.0-jammy-chiseled: Obrazy dla Core CLR, bez danych tzdata ani ICU.
  • 8.0-jammy-chiseled-aot: Obrazy dla natywnego AOT, bez tzdata, ICU ani stdc++.
  • 8.0-jammy-chiseled-extra: Obraz zarówno dla Core CLR, jak i natywnego AOT, zawiera tzdata, ICU oraz stdc++.

Pod względem scenariuszy:

Obrazy 8.0-jammy-chiseled stanowią podstawę dla obrazów runtime i aspnet o tym samym tagu. Domyślnie natywne aplikacje AOT mogą używać obrazu 8.0-jammy-chiseled-aot, ponieważ jest zoptymalizowany pod kątem rozmiaru. Natywne aplikacje AOT oraz aplikacje Core CLR samodzielne/jednoplikowe, które wymagają funkcji globalizacji, mogą używać 8.0-jammy-chiseled-extra.

Obrazy Alpine i Mariner używają tego samego schematu.

Notatka

Obrazy systemowe Debiana i Ubuntu (runtime-deps bez modyfikacji) nie mają wielu wariantów.

Natywne obrazy kontenerów usługi AOT

Natywne obrazy AOT są publikowane w repozytorium zestawu SDK i oznaczone sufiksem -aot. Te obrazy umożliwiają tworzenie natywnych aplikacji AOT. Są one tworzone dla dystrybucji, które mają pasujące obrazy runtime-deps:*-aot. Te obrazy są duże, często dwa razy większe niż zwykłe obrazy zestawu SDK.

Obrazy AOT są publikowane dla:

  • Alpejski
  • Marynarz
  • Ubuntu

Aby uzyskać więcej informacji, zobacz wdrożenie natywne AOT.

Repozytoria centrum platformy Docker

Wszystkie oficjalne obrazy firmy Microsoft dla platformy .NET są publikowane w organizacji microsoft-dotnet Docker Hub. Rozważ następujące repozytoria.

stabilne repozytoria obrazów platformy .NET:

Repozytorium obrazów Obraz
zestawu SDK mcr.microsoft.com/dotnet/sdk
aspnet mcr.microsoft.com/dotnet/aspnet
środowiska uruchomieniowego mcr.microsoft.com/dotnet/runtime
runtime-deps mcr.microsoft.com/dotnet/runtime-deps
monitor mcr.microsoft.com/dotnet/monitor
panel kontrolny Aspire mcr.microsoft.com/dotnet/aspire-dashboard
przykłady mcr.microsoft.com/dotnet/samples

nocne repozytoria obrazów platformy .NET:

Repozytorium obrazów Obraz
nightly-aspnet mcr.microsoft.com/dotnet/nightly/aspnet
nocne monitorowanie mcr.microsoft.com/dotnet/nightly/monitor
nightly-runtime-deps mcr.microsoft.com/dotnet/nightly/runtime-deps
nocne środowisko uruchomieniowe mcr.microsoft.com/dotnet/nightly/runtime
nocny zestaw SDK mcr.microsoft.com/dotnet/nightly/sdk
nightly-aspire-dashboard mcr.microsoft.com/dotnet/nightly/aspire-dashboard

repozytoria obrazów programu .NET Framework:

Repozytorium obrazów Obraz
ramy mcr.microsoft.com/dotnet/framework
framework-aspnet mcr.microsoft.com/dotnet/framework/aspnet
framework-runtime mcr.microsoft.com/dotnet/framework/runtime
przykłady struktury mcr.microsoft.com/dotnet/framework/samples
framework-sdk mcr.microsoft.com/dotnet/framework/sdk
framework-wcf mcr.microsoft.com/dotnet/framework/wcf

Zobacz też