Condividi tramite


Contenitori, immagini e registri Docker

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.

Architettura di Microservizi .NET per Applicazioni .NET Containerizzate miniatura della copertina dell'eBook.

Quando si usa Docker, uno sviluppatore crea un'app o un servizio e lo inserisce in un pacchetto e le relative dipendenze in un'immagine del contenitore. Un'immagine è una rappresentazione statica dell'app o del servizio, della relativa configurazione e delle dipendenze.

Per avviare l'app o il servizio, viene istanziata l'immagine dell'applicazione per creare un container che verrà eseguito sull'host Docker. I contenitori vengono inizialmente testati in un ambiente di sviluppo o in un PC.

Gli sviluppatori devono archiviare le immagini in registri, che fungono da librerie di immagini e sono necessari per la distribuzione su orchestratori di produzione. Docker gestisce un registro pubblico tramite l'hub Docker; altri fornitori forniscono registri per raccolte diverse di immagini, tra cui Registro Azure Container. In alternativa, le aziende possono avere un registro privato locale per le proprie immagini Docker.

La figura 2-4 mostra in che modo le immagini e i registri in Docker sono correlati ad altri componenti. Mostra anche le diverse offerte di registri dei fornitori.

Diagramma che mostra la tassonomia di base in Docker.

Figura 2-4. Tassonomia dei termini e dei concetti di Docker

Il registro è simile a uno scaffale su cui vengono archiviate le immagini, da scaricare per la creazione di contenitori per eseguire servizi o applicazioni web. Esistono registri Docker privati in locale e nel cloud pubblico. Docker Hub è un registro pubblico gestito da Docker, insieme a Docker Trusted Registry una soluzione di livello aziendale, Azure offre Registro Azure Container. AWS, Google e altri hanno anche registri contenitori.

L'inserimento di immagini in un registro consente di archiviare bit di applicazione statici e non modificabili, incluse tutte le relative dipendenze a livello di framework. Tali immagini possono quindi essere versionate e distribuite in più ambienti, fornendo un'unità di distribuzione uniforme.

I registri di immagini privati, ospitati in locale o nel cloud, sono consigliati quando:

  • Le immagini non devono essere condivise pubblicamente a causa della riservatezza.

  • Si vuole avere una latenza di rete minima tra le immagini e l'ambiente di distribuzione scelto. Ad esempio, se l'ambiente di produzione è cloud di Azure, è probabile che si voglia archiviare le immagini in Registro Azure Container in modo che la latenza di rete sia minima. In modo analogo, se l'ambiente di produzione è locale, potrebbe essere necessario disporre di un registro attendibile Docker locale disponibile nella stessa rete locale.