.NET kapsayıcı görüntüleri
.NET, farklı senaryolar için çeşitli kapsayıcı görüntüleri sağlar. Bu makalede farklı görüntü türleri ve bunların nasıl kullanıldığı açıklanmaktadır. Resmi görüntüler hakkında daha fazla bilgi için bkz . Docker Hub: Microsoft .NET deposu.
Etiketleme düzeni
.NET 8'den başlayarak kapsayıcı görüntüleri ayırt edilirken daha pragmatik hale gelecektir. Görüntüleri ayırt etmek için aşağıdaki özellikler kullanılır:
- Uygulamanın hedef çerçeve adı (TFM).
- İşletim sistemi, sürüm ve mimari.
- Görüntü türü (örneğin,
runtime
,aspnet
,sdk
). - Görüntü değişkeni (örneğin, ,
*-distroless
*-chiseled
). - Görüntü özelliği (örneğin,
*-aot
,*-extra
).
Boyut için en iyi duruma getirilmiş görüntüler
Aşağıdaki görüntüler, mümkün olan en küçük görüntü boyutuna neden olacak şekilde odaklanmıştır:
- Alpine
- Mariner distroless
- Ubuntu keskili
Bu görüntüler, ICU veya tzdata gibi genelleştirme bağımlılıklarını içermediğinden daha küçüktür. Bu görüntüler yalnızca genelleştirme sabit modu için yapılandırılmış uygulamalarla çalışır. Bir uygulamayı sabit genelleştirme için yapılandırmak için proje dosyasına aşağıdaki özelliği ekleyin:
<PropertyGroup>
<InvariantGlobalization>true</InvariantGlobalization>
</PropertyGroup>
İpucu
SDK görüntüleri veya *-chiseled
görüntü türleri için *-distroless
üretilmeyen görüntülerdir. Bileşik görüntüler, Core CLR için en aspnet
küçük tekliftir.
Genelleştirmeye uygun görüntüler
Genelleştirme gerektiren kapsayıcılı uygulamalar, genelleştirme bağımlılıkları gerektirdiğinden görüntü boyutunu şişirir. Ubuntu ve Debian görüntüleri zaten ICU ve tzdata yüklüdür.
tzdata bağımlılığı aşağıdaki görüntülere eklendi:
runtime-deps:8.0-jammy
runtime-deps:8.0-bookworm-slim
Bu genelleştirme taktiği, , aspnet
ve sdk
görüntüleri tarafından runtime
aynı etikete sahip şekilde kullanılır.
Önemli
tzdata'da bir güncelleştirme (henüz Debian'da yer almadığı sürece) debian kitap kurdu görüntülerine tzdata eklemenin pratik bir etkisi yoktur. Bu noktada .NET görüntüleri daha yeni bir tzdata içerir.
Kerberos, LDAP ve msquic gibi bazı paketler hala isteğe bağlıdır. Bu paketler yalnızca niş senaryolarda gereklidir.
Senaryo tabanlı görüntüler
Çalışma zamanı deps görüntüleri, özellikle standart bir kullanıcı ve bağlantı noktası tanımları içerdiğinden önemli bir değere sahiptir. Bunlar, bağımsız ve yerel AOT senaryoları için kullanılabilir. Ancak, yalnızca çalışma zamanı ve sdk görüntüleri için gereken görüntüleri sağlamakruntime-deps
, tüm hayal edilebilir senaryoları etkinleştirmek veya en uygun görüntüleri oluşturmak için yeterli değildir.
Gereksinimi runtime-deps
yerel AOT, *-distroless
ve *-chiseled
görüntü türlerine de genişletir. Her işletim sistemi için üç görüntü çeşidi sağlanır (tümü içinde runtime-deps
). Görüntüleri kullanarak *-chiseled
aşağıdaki örneği göz önünde bulundurun:
8.0-jammy-chiseled
: Core CLR için görüntüler, tzdata veya ICU yok.8.0-jammy-chiseled-aot
: Yerel AOT, tzdata, ICU veya stdc++ için görüntüler.8.0-jammy-chiseled-extra
: Hem Core CLR hem de yerel AOT için görüntü tzdata, ICU ve stdc++ içerir.
Senaryolar açısından:
Görüntüler8.0-jammy-chiseled
, aynı etiketin ve aspnet
görüntülerinin temelidirruntime
. Varsayılan olarak, yerel AOT uygulamaları görüntüyü kullanabilir 8.0-jammy-chiseled-aot
çünkü boyut için iyileştirilmiştir. Yerel AOT uygulamaları ve genelleştirme işlevselliği gerektiren Çekirdek CLR bağımsız/tek dosya uygulamaları kullanabilir 8.0-jammy-chiseled-extra
.
Alpine ve Mariner görüntüleri aynı şemayı kullanır.
Not
Debian ve Ubuntu (keskili olmayan) runtime-deps
görüntülerin birden çok çeşidi yoktur.
Yerel AOT kapsayıcı görüntüleri
Yerel AOT görüntüleri sdk deposunda yayımlanır ve sonekle -aot
etiketlenir. Bu görüntüler yerel AOT uygulamaları oluşturmayı sağlar. Bunlar, eşleşen runtime-deps:*-aot
görüntülere sahip dağıtımlar için oluşturulur. Bu görüntüler genellikle normal SDK görüntülerinin iki katı boyutundadır.
AOT görüntüleri şunlar için yayımlanır:
- Alpine
- Mariner
- Ubuntu
Daha fazla bilgi için bkz. Yerel AOT dağıtımı
Docker hub depoları
.NET için tüm resmi Microsoft görüntüleri microsoft-dotnet Docker Hub kuruluşunda yayımlanır. Aşağıdaki depoları göz önünde bulundurun.
.NET kararlı görüntü depoları:
Görüntü deposu | Görsel |
---|---|
sdk | mcr.microsoft.com/dotnet/sdk |
aspnet | mcr.microsoft.com/dotnet/aspnet |
Çalışma zamanı | mcr.microsoft.com/dotnet/runtime |
runtime-deps | mcr.microsoft.com/dotnet/runtime-deps |
ekran | mcr.microsoft.com/dotnet/monitor |
aspire-dashboard | mcr.microsoft.com/dotnet/aspire-dashboard |
Örnekleri | mcr.microsoft.com/dotnet/samples |
.NET gecelik görüntü depoları:
Görüntü deposu | Görsel |
---|---|
nightly-aspnet | mcr.microsoft.com/dotnet/nightly/aspnet |
gecelik monitör | mcr.microsoft.com/dotnet/nightly/monitor |
nightly-runtime-deps | mcr.microsoft.com/dotnet/nightly/runtime-deps |
gece çalışma zamanı | mcr.microsoft.com/dotnet/nightly/runtime |
nightly-sdk | mcr.microsoft.com/dotnet/nightly/sdk |
gece-aspire-dashboard | mcr.microsoft.com/dotnet/nightly/aspire-dashboard |
.NET Framework görüntü depoları:
Görüntü deposu | Görsel |
---|---|
çerçeve | mcr.microsoft.com/dotnet/framework |
framework-aspnet | mcr.microsoft.com/dotnet/framework/aspnet |
framework-runtime | mcr.microsoft.com/dotnet/framework/runtime |
çerçeve örnekleri | mcr.microsoft.com/dotnet/framework/samples |
framework-sdk | mcr.microsoft.com/dotnet/framework/sdk |
framework-wcf | mcr.microsoft.com/dotnet/framework/wcf |