.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, , aspnetve sdk görüntüleri tarafından runtimeaynı 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, *-distrolessve *-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
Aspnet mcr.microsoft.com/dotnet/aspnet
Monitör mcr.microsoft.com/dotnet/monitor
izleme tabanı mcr.microsoft.com/dotnet/monitor/base
runtime-deps mcr.microsoft.com/dotnet/runtime-deps
Çalışma zamanı mcr.microsoft.com/dotnet/runtime
Örnekleri mcr.microsoft.com/dotnet/samples
Sdk mcr.microsoft.com/dotnet/sdk

.NET gecelik görüntü depoları:

Görüntü deposu Görsel
Gece mcr.microsoft.com/dotnet/nightly
nightly-aspnet mcr.microsoft.com/dotnet/nightly/aspnet
gece monitör tabanı mcr.microsoft.com/dotnet/nightly/monitor/base
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

.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

Ayrıca bkz.