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
, ,aspnet
sdk
). - 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 |