Bagikan melalui


Gambar kontainer .NET

.NET menyediakan berbagai gambar kontainer untuk skenario yang berbeda. Artikel ini menjelaskan berbagai jenis gambar dan cara penggunaannya. Untuk informasi selengkapnya tentang gambar resmi, lihat repositori Docker Hub: Microsoft .NET .

Skema pemberian tanda

Dimulai dengan .NET 8, gambar kontainer lebih pragmatis dalam bagaimana gambar tersebut diferensiasi. Karakteristik berikut digunakan untuk membedakan gambar:

  • Moniker kerangka kerja target (TFM) aplikasi.
  • OS, versi, dan arsitektur.
  • Jenis gambar (misalnya, runtime, , aspnetsdk).
  • Varian gambar (misalnya, *-distroless, *-chiseled).
  • Fitur gambar (misalnya, *-aot, *-extra).

Gambar yang dioptimalkan untuk ukuran

Gambar berikut difokuskan untuk menghasilkan ukuran gambar sekecil mungkin:

  • Alpine
  • Mariner distroless
  • Ubuntu dimahat

Gambar-gambar ini lebih kecil, karena tidak termasuk dependensi globalisasi seperti, ICU, atau tzdata. Gambar-gambar ini hanya berfungsi dengan aplikasi yang dikonfigurasi untuk mode invarian globalisasi. Untuk mengonfigurasi aplikasi untuk globalisasi invarian, tambahkan properti berikut ke file proyek:

<PropertyGroup>
  <InvariantGlobalization>true</InvariantGlobalization>
</PropertyGroup>

Tip

Gambar SDK tidak diproduksi untuk *-distroless jenis gambar atau *-chiseled . Gambar komposit adalah penawaran terkecil aspnet untuk Core CLR.

Gambar yang cocok untuk globalisasi

Aplikasi kontainer yang memerlukan globalisasi mengembang ukuran gambar, karena memerlukan dependensi globalisasi. Gambar Ubuntu dan Debian sudah menginstal ICU dan tzdata.

Dependensi tzdata ditambahkan ke gambar berikut:

  • runtime-deps:8.0-jammy
  • runtime-deps:8.0-bookworm-slim

Taktik globalisasi ini digunakan oleh runtime, aspnet, dan sdk gambar dengan tag yang sama.

Penting

Menambahkan tzdata ke gambar bookworm Debian tidak memiliki efek praktis, kecuali ada pembaruan untuk tzdata (yang belum termasuk dalam Debian), pada saat itu gambar .NET akan menyertakan tzdata yang lebih baru.

Beberapa paket masih opsional, seperti Kerberos, LDAP, dan msquic. Paket ini hanya diperlukan dalam skenario niche.

Gambar berbasis skenario

Gambar runtime-deps memiliki nilai yang signifikan, terutama karena menyertakan definisi pengguna dan port standar. Mereka nyaman digunakan untuk skenario AOT mandiri dan asli. Namun, hanya menyediakan runtime-deps gambar yang diperlukan oleh gambar runtime dan sdk tidak cukup untuk mengaktifkan semua skenario yang dapat dibayangkan atau menghasilkan gambar yang optimal.

Kebutuhan akan runtime-deps meluas ke jenis gambar AOT, *-distroless, dan *-chiseled asli juga. Untuk setiap OS, tiga varian gambar disediakan (semuanya dalam runtime-deps). Pertimbangkan contoh berikut menggunakan *-chiseled gambar:

  • 8.0-jammy-chiseled: Gambar untuk Core CLR, tidak ada tzdata atau ICU.
  • 8.0-jammy-chiseled-aot: Gambar untuk AOT asli, tidak ada tzdata, ICU, atau stdc++.
  • 8.0-jammy-chiseled-extra: Gambar untuk CORE CLR dan AOT asli, termasuk tzdata, ICU, dan stdc++.

Dalam hal skenario:

Gambar 8.0-jammy-chiseled adalah dasar untuk runtime dan aspnet gambar dari tag yang sama. Secara default, aplikasi AOT asli dapat menggunakan 8.0-jammy-chiseled-aot gambar, karena dioptimalkan untuk ukuran. Aplikasi AOT asli dan aplikasi file mandiri/tunggal Core CLR yang memerlukan fungsionalitas globalisasi dapat menggunakan 8.0-jammy-chiseled-extra.

Gambar Alpine dan Mariner menggunakan skema yang sama.

Catatan

Gambar Debian dan Ubuntu (non-pahat) runtime-deps tidak memiliki beberapa varian.

Gambar kontainer AOT asli

Gambar AOT asli diterbitkan ke repositori sdk , dan ditandai dengan akhiran -aot . Gambar-gambar ini memungkinkan pembuatan aplikasi AOT asli. Mereka dibuat untuk distro dengan gambar yang runtime-deps:*-aot cocok. Gambar-gambar ini besar, biasanya dua kali ukuran gambar SDK reguler.

Gambar AOT diterbitkan untuk:

  • Alpine
  • Mariner
  • Ubuntu

Untuk informasi selengkapnya, lihat Penyebaran AOT asli

Repositori hub Docker

Semua gambar Microsoft resmi untuk .NET diterbitkan ke organisasi Microsoft-dotnet Docker Hub. Pertimbangkan repositori berikut.

Repositori gambar stabil .NET:

Repositori gambar Gambar
sdk mcr.microsoft.com/dotnet/sdk
aspnet mcr.microsoft.com/dotnet/aspnet
runtime mcr.microsoft.com/dotnet/runtime
runtime-deps mcr.microsoft.com/dotnet/runtime-deps
monitor mcr.microsoft.com/dotnet/monitor
dasbor aspire mcr.microsoft.com/dotnet/aspire-dashboard
Sampel mcr.microsoft.com/dotnet/samples

Repositori gambar malam .NET:

Repositori gambar Gambar
aspnet malam mcr.microsoft.com/dotnet/nightly/aspnet
monitor malam mcr.microsoft.com/dotnet/nightly/monitor
nightly-runtime-deps mcr.microsoft.com/dotnet/nightly/runtime-deps
runtime malam mcr.microsoft.com/dotnet/nightly/runtime
nightly-sdk mcr.microsoft.com/dotnet/nightly/sdk
dasbor aspire malam mcr.microsoft.com/dotnet/nightly/aspire-dashboard

Repositori gambar .NET Framework:

Repositori gambar Gambar
framework mcr.microsoft.com/dotnet/framework
framework-aspnet mcr.microsoft.com/dotnet/framework/aspnet
runtime kerangka kerja mcr.microsoft.com/dotnet/framework/runtime
sampel kerangka kerja mcr.microsoft.com/dotnet/framework/samples
framework-sdk mcr.microsoft.com/dotnet/framework/sdk
framework-wcf mcr.microsoft.com/dotnet/framework/wcf

Lihat juga