Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Suggerimento
Questo contenuto è un estratto dell'eBook, Architettura di microservizi .NET per applicazioni .NET containerizzati, disponibile in documentazione .NET o come PDF scaricabile gratuitamente leggibile offline.
Data la diversità dei sistemi operativi supportati da Docker e le differenze tra .NET Framework e .NET 8, è necessario specificare come destinazione un sistema operativo specifico e versioni specifiche a seconda del framework in uso.
Per Windows, è possibile usare Windows Server Core o Windows Nano Server. Queste versioni di Windows forniscono caratteristiche diverse (IIS in Windows Server Core rispetto a un server Web self-hosted come Kestrel in Nano Server) che potrebbero essere necessarie rispettivamente da .NET Framework o .NET 8.
Per Linux, sono disponibili più distribuzioni e supportate nelle immagini Docker .NET ufficiali (ad esempio Debian).
Nella figura 3-1 è possibile visualizzare la versione del sistema operativo possibile a seconda del framework .NET usato.
Figura 3-1. Sistemi operativi di destinazione a seconda delle versioni di .NET Framework
Quando si distribuiscono applicazioni .NET Framework legacy, è necessario avere come destinazione Windows Server Core, compatibile con le app legacy e IIS, ma ha un'immagine più grande. Quando si distribuiscono applicazioni .NET 8, è possibile scegliere Come destinazione Windows Nano Server, ottimizzato per il cloud, usa Kestrel ed è più piccolo e si avvia più velocemente. È anche possibile specificare come destinazione Linux, supportare Debian, Alpine e altri.
È anche possibile creare un'immagine Docker personalizzata nei casi in cui si vuole usare una distribuzione Linux diversa o in cui si vuole un'immagine con versioni non fornite da Microsoft. Ad esempio, è possibile creare un'immagine con ASP.NET Core in esecuzione in .NET Framework e Windows Server Core tradizionali, uno scenario non così comune per Docker.
Quando si aggiunge il nome dell'immagine al file Dockerfile, è possibile selezionare il sistema operativo e la versione a seconda del tag usato, come negli esempi seguenti:
Immagine | Commenti |
---|---|
mcr.microsoft.com/dotnet/runtime:8.0 | Multiarchitettura .NET 8: supporta Linux e Windows Nano Server a seconda dell'host Docker. |
mcr.microsoft.com/dotnet/aspnet:8.0 | ASP.NET Core 8.0 multiarchitettura: supporta Linux e Windows Nano Server a seconda dell'host Docker. L'immagine aspnetcore include alcune ottimizzazioni per ASP.NET Core. |
mcr.microsoft.com/dotnet/aspnet:8.0-bullseye-slim | Runtime .NET 8 solo per Debian su Linux |
mcr.microsoft.com/dotnet/aspnet:8.0-nanoserver-1809 | Runtime esclusivo di .NET 8 su Windows Nano Server (versione 1809 di Windows Server) |