L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
Immagini del contenitore .NET
Articolo
29.01.2025
.NET offre varie immagini del contenitore per diversi scenari. Questo articolo descrive i diversi tipi di immagini e il modo in cui vengono usati. Per altre informazioni sulle immagini ufficiali, vedere il repository Docker Hub: Microsoft .NET.
Schema di assegnazione di tag
A partire da .NET 8, le immagini dei contenitori sono più pragmatiche nel modo in cui sono differenziate. Per distinguere le immagini vengono usate le caratteristiche seguenti:
Indicatore del framework di destinazione (TFM) dell'app.
Sistema operativo, versione e architettura.
Tipo di immagine , ad esempio runtime, aspnet, sdk).
Variante dell'immagine ( ad esempio, *-distroless, *-chiseled).
La funzionalità dell'immagine (ad esempio, *-aot, *-extra).
Immagini ottimizzate per le dimensioni
Le immagini seguenti sono ottimizzate per ottenere la dimensione file più piccola possibile.
Alpino
Mariner senza sistema operativo tradizionale
Ubuntu Chiseled
Queste immagini sono più piccole, perché non includono dipendenze di globalizzazione, ad esempio ICU o tzdata. Queste immagini funzionano solo con le app configurate per la modalità invariabile di globalizzazione. Per configurare un'app per la globalizzazione invariante, aggiungere la proprietà seguente al file di progetto:
Le immagini SDK non vengono prodotte per *-distroless o *-chiseled tipi di immagine. Le immagini composite rappresentano la più piccola offerta di aspnet per Core CLR.
Immagini adatte alla globalizzazione
Le app in container che richiedono la globalizzazione aumentano la dimensione dell'immagine, perché richiedono dipendenze di globalizzazione. Le immagini Ubuntu e Debian hanno già installato ICU e tzdata.
La dipendenza tzdata è stata aggiunta alle immagini seguenti:
runtime-deps:8.0-jammy
runtime-deps:8.0-bookworm-slim
Questa tattica di globalizzazione viene utilizzata per le immagini runtime, aspnete sdk che hanno lo stesso tag.
Importante
L'aggiunta di tzdata alle immagini di Debian bookworm non ha alcun effetto pratico, a meno che non vi sia un aggiornamento di tzdata (che non è ancora incluso in Debian), momento in cui le immagini .NET includerebbero un tzdata più aggiornato.
Alcuni pacchetti sono ancora facoltativi, ad esempio Kerberos, LDAP e msquic. Questi pacchetti sono necessari solo in scenari di nicchia.
Immagini basate su scenari
Le immagini runtime-deps hanno un valore significativo, in particolare perché includono definizioni standard di utente e porta. Sono comodi da utilizzare per scenari AOT autonomi e nativi. Tuttavia, fornire esclusivamente immagini runtime-deps necessarie per il runtime di e sdk immagini non è sufficiente per abilitare tutti gli scenari immaginabili o generare immagini ottimali.
La necessità di runtime-deps si estende anche ai tipi di immagine AOT nativi, *-distrolesse *-chiseled. Per ogni sistema operativo vengono fornite tre varianti di immagine (tutte in runtime-deps). Si consideri il seguente esempio utilizzando immagini *-chiseled:
8.0-jammy-chiseled: immagini per Core CLR, senza tzdata o ICU.
8.0-jammy-chiseled-aot: immagini per AOT nativo, senza tzdata, ICU o stdc++.
8.0-jammy-chiseled-extra: immagine sia per Core CLR che per AOT nativo, include tzdata, ICU e stdc++.
In termini di scenari:
Le immagini 8.0-jammy-chiseled sono la base per runtime e aspnet immagini dello stesso tag. Per impostazione predefinita, le app AOT native possono usare l'immagine 8.0-jammy-chiseled-aot, perché è ottimizzata per le dimensioni. Le app AOT native e le app CLR autonome/monofile che richiedono la funzionalità di globalizzazione possono usare 8.0-jammy-chiseled-extra.
Le immagini Alpine e Mariner usano lo stesso schema.
Nota
Debian e Ubuntu (non modificati) runtime-deps non hanno varianti multiple.
Immagini del contenitore AOT nativo
Le immagini AOT native vengono pubblicate nel repository sdk e contrassegnate con il suffisso -aot. Queste immagini consentono di creare app AOT native. Vengono creati per le distribuzioni con immagini runtime-deps:*-aot corrispondenti. Queste immagini sono grandi, comunemente due volte le dimensioni delle normali immagini SDK.
Tutte le immagini Ufficiali di Microsoft per .NET vengono pubblicate nell'organizzazione microsoft-dotnet Docker Hub. Prendere in considerazione i repository seguenti.
L'origine per questo contenuto è disponibile in GitHub, dove puoi anche creare ed esaminare i problemi e le richieste pull. Per altre informazioni, vedi la nostra guida per i collaboratori.
Feedback su
.NET
.NET
è un progetto open source. Seleziona un collegamento per fornire feedback:
Informazioni sulla funzionalità di creazione dei container del .NET SDK, inclusa la telemetria, le considerazioni sulla pubblicazione e le proprietà di compilazione.
Creare app e servizi indipendenti distribuibili, altamente scalabili e resilienti usando la piattaforma .NET gratuita e open source. Con .NET è possibile usare la tecnologia di microservizi più diffusa, ad esempio Docker, Kubernetes, Dapr, Registro Azure Container e altro ancora per .NET e ASP.NET Servizi e applicazioni Core.