Aracılığıyla paylaş


.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, aspnetve 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, *-distrolessve *-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-extrakullanabilir.

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.