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 tag
Dimulai dengan .NET 8, gambar kontainer lebih pragmatis dalam cara mereka dibedakan. Karakteristik berikut digunakan untuk membedakan gambar:
- Moniker kerangka kerja target (TFM) di dalam aplikasi.
- OS, versi, dan arsitektur.
- Jenis gambar (misalnya,
runtime
,aspnet
,sdk
). - Varian gambar (misalnya,
*-distroless
,*-chiseled
). - Fitur gambar (misalnya,
*-aot
,*-extra
).
Gambar dioptimalkan untuk ukuran
Gambar berikut difokuskan untuk menghasilkan ukuran gambar sekecil mungkin:
- Alpine
- Mariner distroless
- Ubuntu ditajamkan
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 globalisasi invarian. Untuk mengonfigurasi aplikasi untuk globalisasi invarian, tambahkan properti berikut ke file proyek:
<PropertyGroup>
<InvariantGlobalization>true</InvariantGlobalization>
</PropertyGroup>
Tips
Gambar SDK tidak diproduksi untuk jenis gambar *-distroless
atau *-chiseled
. Gambar komposit adalah penawaran aspnet
yang terkecil untuk Core CLR.
Gambar yang cocok untuk globalisasi
Aplikasi yang dikontainerkan yang memerlukan globalisasi meningkatkan ukuran gambar, karena memerlukan dependensi untuk globalisasi. Gambar Ubuntu dan Debian sudah menyertakan 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 gambar-gambar runtime
, aspnet
, dan sdk
dengan tag yang sama.
Penting
Menambahkan tzdata ke citra bookworm Debian tidak memiliki efek praktis, kecuali ada pembaruan untuk tzdata (yang belum dimasukkan dalam Debian), pada titik tersebut citra .NET akan berisi tzdata yang lebih baru.
Beberapa paket masih opsional, seperti Kerberos, LDAP, dan msquic. Paket ini hanya diperlukan dalam skenario niche.
Gambar berbasis skenario
runtime-deps gambar memiliki nilai yang signifikan, terutama karena menyertakan definisi pengguna dan port standar. Mereka mudah digunakan untuk skenario AOT terintegrasi dan asli. Namun, hanya menyediakan gambar runtime-deps
yang diperlukan oleh runtime dan sdk tidak cukup untuk memungkinkan semua skenario yang bisa dibayangkan atau menghasilkan gambar yang optimal.
Kebutuhan akan runtime-deps
juga meluas ke jenis gambar AOT asli, *-distroless
, dan *-chiseled
. Untuk setiap OS, tiga varian gambar disediakan (semuanya dalam runtime-deps
). Pertimbangkan contoh berikut menggunakan gambar *-chiseled
:
-
8.0-jammy-chiseled
: Gambar untuk Core CLR, tanpa tzdata atau ICU. -
8.0-jammy-chiseled-aot
: Gambar untuk AOT asli, tanpa 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 gambar runtime
dan aspnet
dari tag yang sama. Secara default, aplikasi AOT asli dapat menggunakan gambar 8.0-jammy-chiseled-aot
, 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.
Nota
Gambar runtime-deps
Debian dan Ubuntu (non-chiseled) 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 runtime-deps:*-aot
yang cocok. Gambar-gambar ini besar, biasanya dua kali ukuran gambar SDK reguler.
Gambar AOT diterbitkan untuk:
- Alpine
- Pelaut
- Ubuntu
Untuk informasi selengkapnya, lihat AOT Native deployment.
Repositori Docker Hub
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 |
aspire-dasbor | mcr.microsoft.com/dotnet/aspire-dashboard |
sampel | mcr.microsoft.com/dotnet/samples |
repositori gambar malam .NET:
Repositori gambar | Gambar |
---|---|
aspnet versi malam | mcr.microsoft.com/dotnet/nightly/aspnet |
pemantauan malam | mcr.microsoft.com/dotnet/nightly/monitor |
dependensi waktu jalan malam | mcr.microsoft.com/dotnet/nightly/runtime-deps |
runtime versi malam | mcr.microsoft.com/dotnet/nightly/runtime |
SDK versi malam | mcr.microsoft.com/dotnet/nightly/sdk |
dasbor harian | mcr.microsoft.com/dotnet/nightly/aspire-dashboard |
repositori gambar untuk .NET Framework:
Repositori gambar | Gambar |
---|---|
kerangka kerja | mcr.microsoft.com/dotnet/framework |
kerangka kerja aspnet | mcr.microsoft.com/dotnet/framework/aspnet |
kerangka kerja-runtime | 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 |