.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 itibaren, kapsayıcı görüntülerinin nasıl ayırt edildikleri daha pragmatik hale geliyor. Görüntüleri ayırt etmek için aşağıdaki özellikler kullanılır:
- Uygulamanın hedef çerçeve tanımlayıcısı (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 optimize edilmiş 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 ince işlenmiş
ICU veya tzdata gibi genelleştirme bağımlılıklarını içermediğinden bu görüntüler 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>
Bahşiş
SDK görüntüleri *-distroless
veya *-chiseled
görüntü türleri için üretilmeyen görüntülerdir. Bileşik görüntüler, Core CLRiçin en küçük aspnet
seçeneğidir.
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ü olarak gelir.
tzdata bağımlılığı aşağıdaki görüntülere eklendi:
runtime-deps:8.0-jammy
runtime-deps:8.0-bookworm-slim
Bu küreselleşme taktiği, aynı etiket altındaki runtime
, aspnet
ve sdk
görüntüleri tarafından kullanılır.
Önemli
Debian kitap kurdu görüntülerine tzdata eklemenin pratik bir etkisi yoktur, tzdata'da bir güncelleme olmadığı sürece (ki bu güncelleme henüz Debian'a eklenmemiştir). Bu durumda, .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
runtime-deps görüntüleri, özellikle standart 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 runtime-deps
görüntüleri sağlamak, tüm hayal edilebilir senaryoları etkinleştirmek veya en uygun görüntüleri oluşturmak için yeterli değildir.
runtime-deps
gereksinimi yerel AOT, *-distroless
ve *-chiseled
görüntü türlerine de uzanır. Her işletim sistemi için üç görüntü değişkeni sağlanır (tümü runtime-deps
).
*-chiseled
görüntüleri kullanarak aşağıdaki örneği göz önünde bulundurun:
-
8.0-jammy-chiseled
: Çekirdek CLR için görüntüler, tzdata veya ICU yok. -
8.0-jammy-chiseled-aot
: Yerel AOT için görüntüler, tzdata, ICU veya stdc++ yok. -
8.0-jammy-chiseled-extra
: Hem Çekirdek CLR hem de yerel AOT görüntüsü tzdata, ICU ve stdc++ içerir.
Senaryolar açısından:
8.0-jammy-chiseled
görüntüleri, aynı etiketin runtime
ve aspnet
görüntüleri için temeldir. Varsayılan olarak, boyut için optimize edildiği için yerel AOT uygulamaları 8.0-jammy-chiseled-aot
görüntüsünü kullanabilir. Yerel AOT uygulamaları ve genelleştirme işlevleri gerektiren bağımsız/tek dosya Core CLR uygulamaları 8.0-jammy-chiseled-extra
kullanabilir.
Alpine ve Mariner görüntüleri aynı şemayı kullanır.
Bir Not
Debian ve Ubuntu (keskinleştirilmemiş) runtime-deps
, birden fazla çeşidi olmayan görüntülerdir.
Yerel AOT kapsayıcı görüntüleri
Yerel AOT görüntüleri sdk deposunda yayımlanır ve -aot
son ekiyle etiketlendirilir. Bu görüntüler yerel AOT uygulamaları oluşturmayı sağlar. Uyumlu runtime-deps:*-aot
görüntülere sahip dağıtımlar için oluşturulmuştur. 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
- Denizci
- 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 | Resim |
---|---|
sdk | mcr.microsoft.com/dotnet/sdk |
aspnet | mcr.microsoft.com/dotnet/aspnet |
çalışma zamanı | mcr.microsoft.com/dotnet/runtime |
çalışma zamanı deps | mcr.microsoft.com/dotnet/runtime-deps |
monitör | mcr.microsoft.com/dotnet/monitor |
Aspire kontrol paneli | mcr.microsoft.com/dotnet/aspire-dashboard |
örnekleri | mcr.microsoft.com/dotnet/samples |
.NET gece görüntü depolarını :
Görüntü deposu | Resim |
---|---|
gece sürümü ASP.NET | mcr.microsoft.com/dotnet/nightly/aspnet |
gece 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 |
gecelik sdk | mcr.microsoft.com/dotnet/nightly/sdk |
gece-aspire-gösterge paneli | mcr.microsoft.com/dotnet/nightly/aspire-dashboard |
.NET Framework görüntü depoları:
Görüntü deposu | Resim |
---|---|
ç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 |
Ayrıca bkz.
- .NET 8'deki yenilikler: Kapsayıcı imajları
- .NET 8+ görüntüleri farklı hale getirmeye yönelik yeni yaklaşım