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.
Si applica a: Windows Server 2025, Windows Server 2022, Windows Server 2019, Windows Server 2016
I contenitori sono una tecnologia per la creazione di pacchetti e l'esecuzione di applicazioni di Windows e Linux in ambienti di diverso tipo, in locale e nel cloud. Questa tecnologia offre un ambiente semplice e isolato che semplifica lo sviluppo, la distribuzione e la gestione delle app. Grazie alla rapidità di avvio e arresto, i contenitori rappresentano la soluzione ideale per le app che devono adattarsi rapidamente alle continue variazioni della domanda. La natura leggera dei contenitori li rende anche uno strumento utile per aumentare la densità e l'utilizzo dell'infrastruttura.
Ecosistema dei contenitori Microsoft
Microsoft offre numerosi strumenti e piattaforme che consentono di sviluppare e distribuire app nei contenitori:
Eseguire contenitori basati su Windows o Linux in Windows 10 per lo sviluppo e il testing usando Docker Desktop, che sfrutta la funzionalità di gestione dei contenitori integrata in Windows. Puoi anche eseguire contenitori in modalità nativa in Windows Server.
Sviluppare, testare, pubblicare e distribuire contenitori basati su Windows usando il potente supporto per contenitori in Visual Studio e Visual Studio Code, incluso il supporto per Docker, Docker Compose, Kubernetes, Helm e altre tecnologie utili.
Pubblicare le app come immagini di contenitore sull'hub Docker pubblico, per consentire ad altri utenti di usarle, oppure su un Registro Azure Container privato per svilupparle e distribuirle all'interno dell'organizzazione, eseguendone il push e il pull direttamente da Visual Studio e Visual Studio Code.
Distribuire i contenitori su larga scala in Azure o in altri cloud:
Esegui il pull dell'app da un registro di contenitori, come Azure Container Registry, quindi distribuiscila e gestiscila su larga scala usando un orchestratore, ad esempio il servizio Azure Kubernetes (AKS).
Il servizio Azure Kubernetes distribuisce i contenitori nelle macchine virtuali di Azure e li gestisce su larga scala. È possibile eseguire decine, centinaia o persino migliaia di contenitori.
Le macchine virtuali di Azure eseguono un'immagine di Windows Server personalizzata per le app basate su Windows o un'immagine Ubuntu Linux personalizzata per le app basate su Linux.
Distribuire contenitori in locale usando il servizio Azure Kubernetes abilitato da Azure Arc, dal motore del servizio Azure Kubernetesnell'hub di Azure Stack o dall'hub di Azure Stack con OpenShift. È anche possibile configurare Kubernetes in Windows Server. Per altre informazioni, vedere Kubernetes in Windows. Microsoft sta anche sviluppando il supporto per i contenitori Windows in RedHat OpenShift Container Platform.
Come funzionano i contenitori
Un contenitore è un pacchetto isolato e leggero per l'esecuzione di un'applicazione nel sistema operativo host. I contenitori vengono eseguiti sopra il kernel del sistema operativo host (che è possibile considerare come l'impianto idraulico sepolto del sistema operativo), come illustrato nel diagramma seguente.
Sebben il contenitore condivida il kernel del sistema operativo host, non ottiene l'accesso illimitato a esso. Al contrario, il contenitore ottiene una visualizzazione isolata, e in alcuni casi virtualizzata, del sistema. Ad esempio, un contenitore può accedere a una versione virtualizzata del file system e del registro, ma tutte le modifiche influiscono solo sul contenitore e vengono eliminate quando questo si ferma. Per salvare i dati, il contenitore può montare l'archiviazione permanente, ad esempio un disco di Azure o una condivisione file come File di Azure.
Un contenitore si basa sul kernel, ma il kernel non fornisce tutte le API e i servizi necessari per l'esecuzione di un'app. La maggior parte di queste API e servizi proviene da file di sistema (librerie) eseguiti sopra il kernel in modalità utente. Poiché un contenitore è isolato dall'ambiente in modalità utente dell'host, il contenitore necessita della propria copia di questi file di sistema in modalità utente. Questi file vengono inseriti in un pacchetto noto come immagine di base. L'immagine di base funge da livello di base su cui si compila il contenitore, fornendo i servizi del sistema operativo non forniti dal kernel.
Confronto tra contenitori e macchine virtuali
A differenza di un contenitore, una macchina virtuale esegue un sistema operativo completo, incluso il proprio kernel, come illustrato nel diagramma seguente.
I contenitori e le macchine virtuali hanno i rispettivi usi. Molte distribuzioni di contenitori usano infatti macchine virtuali come sistema operativo host anziché essere eseguite direttamente nell'hardware, soprattutto quando si eseguono contenitori nel cloud.
Per altre informazioni sulle analogie e sulle differenze di queste tecnologie complementari, vedere Contenitori e macchine virtuali.
Immagini dei contenitori
Crei tutti i contenitori dalle immagini di contenitore. Un'immagine del contenitore è un bundle di file organizzati in uno stack di livelli che si trovano nel computer locale o in un registro contenitori remoto. Un'immagine del contenitore è costituita dai file del sistema operativo in modalità utente necessari per l'esecuzione dell'app. L'immagine include anche i runtime, le dipendenze e i file di configurazione richiesti dall'app.
Microsoft offre diverse immagini, denominate immagini di base, che puoi usare come punto di partenza per creare un'immagine di contenitore personalizzata:
- Windows: l'immagine che contiene il set completo di API e servizi di sistema Windows (esclusi i ruoli del server).
- Windows Server : contiene il set completo di API e servizi di sistema di Windows.
- Windows Server Core: un'immagine più piccola che contiene un subset delle API di Windows Server, ovvero la versione completa di .NET Framework. Include anche la maggior parte ma non tutti i ruoli del server (ad esempio il server fax non è incluso).
- Nano Server : l'immagine di Windows Server più piccola e include il supporto per le API .NET Core e alcuni ruoli del server.
Le immagini del contenitore sono costituite da una serie di livelli. Ogni livello contiene un set di file che, quando sovrapposti, rappresentano l'immagine del contenitore. A causa della natura a più livelli dei contenitori, non è sempre necessario impostare come destinazione un'immagine di base per compilare un contenitore Windows. È invece possibile scegliere come destinazione un'altra immagine che contiene già il framework desiderato. Il team di .NET, ad esempio, pubblica un'immagine .NET Core che contiene il runtime di .NET Core. In questo modo, evita agli utenti la necessità di duplicare il processo di installazione di .NET Core, grazie alla possibilità di riutilizzare i livelli di questa immagine di contenitore. L'immagine di .NET Core è di per sé basata su Nano Server.
Per altre informazioni, vedere Immagini di base del contenitore.
Utenti dei contenitori
Contenitori per gli sviluppatori
I contenitori consentono agli sviluppatori di creare e distribuire più velocemente app di qualità superiore. Con i contenitori, gli sviluppatori possono creare un'immagine distribuibile in pochi secondi, in modo identico su più ambienti. I contenitori offrono un meccanismo semplice per condividere il codice tra i team e per avviare un ambiente di sviluppo senza alcun impatto sul file system host.
I contenitori sono portabili e versatili, possono eseguire app scritte in qualsiasi linguaggio e sono compatibili con qualsiasi computer che esegue Windows 10, versione 1607 o successiva, oppure Windows Server 2016 o versione successiva. Gli sviluppatori possono creare e testare un contenitore in locale sul proprio laptop o desktop e quindi distribuire la stessa immagine di contenitore nel cloud privato della propria azienda, in un cloud pubblico o a un provider di servizi. La flessibilità naturale dei contenitori supporta i modelli di sviluppo delle nuove app negli ambienti cloud virtualizzati, su larga scala. Il vantaggio più utile per gli sviluppatori è forse la possibilità di isolare l'ambiente in modo che l'app ottenga sempre la versione delle librerie specificate, evitando conflitti con le dipendenze.
Contenitori per i professionisti IT
I contenitori consentono agli amministratori di creare un'infrastruttura più facile da aggiornare e gestire, in grado di sfruttare in modo ottimale le risorse hardware. I professionisti IT possono usare i contenitori per offrire ambienti standardizzati per i team di sviluppo, QA e produzione. Usando i contenitori, gli amministratori di sistema eliminano le differenze nelle installazioni dei sistemi operativi e nell'infrastruttura sottostante.
È anche possibile usare la modalità interattiva dei contenitori per eseguire istanze in conflitto di uno strumento da riga di comando nello stesso sistema.
Orchestrazione dei contenitori
Gli agenti di orchestrazione costituiscono una parte essenziale dell'infrastruttura durante la configurazione di un ambiente basato su contenitori. Gli agenti di orchestrazione sono essenziali quando si gestiscono app in contenitori su larga scala. Anche se è possibile gestire manualmente alcuni contenitori usando Docker e Windows, le app spesso usano cinque, dieci o persino centinaia di contenitori, rendendo indispensabili agenti di orchestrazione.
Questi agenti sono stati creati per aiutare a gestire i contenitori su larga scala in fase di produzione. Gli agenti di orchestrazione offrono funzionalità per:
Gli agenti di orchestrazione consentono di aumentare le app in contenitori su larga scala, fornendo funzionalità per:
- Distribuzione su larga scala
- Pianificazione del carico di lavoro
- Monitoraggio dell’integrità
- Failover in caso di errore di un nodo
- Scalabilità delle prestazioni
- Rete
- Individuazione dei servizi
- Coordinamento degli aggiornamenti di app
- Affinità dei nodi del cluster
Con i contenitori di Windows sono disponibili diversi agenti di orchestrazione. Ecco le opzioni offerte da Microsoft:
- Servizio Azure Kubernetes (AKS): consente di usare un ambiente Kubernetes gestito
- servizio Azure Kubernetes (AKS) in Azure Stack HCI: usare servizio Azure Kubernetes locale
Provare i contenitori in Windows
Per iniziare a usare i contenitori in Windows Server o Windows 10, vedere l'articolo seguente:
Per informazioni sulla scelta dei servizi di Azure più adatti allo scenario, vedere Servizi contenitore di Azure e Scelta dei servizi di Azure da usare per ospitare l'applicazione.
Risorse
Per visualizzare le risorse per l'uso dei contenitori di Windows Server, vedere le risorse seguenti:
Per i problemi correnti e gli aggiornamenti pianificati delle funzionalità, vedere il repository GitHub dei contenitori di Windows.
Vedere il blog: Blog sui contenitori di Windows.
Per contattare il team dei contenitori di Windows Server, inviare un messaggio di posta elettronica al gruppo clienti Contenitori di Windows.