Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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-jammyruntime-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 |