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.
Questa sezione elenca i termini e le definizioni con cui si ha familiarità prima di approfondire Docker. Per altre definizioni, vedere il glossario completo fornito da Docker.
Immagine del contenitore: pacchetto con tutte le dipendenze e le informazioni necessarie per creare un contenitore. Un'immagine include tutte le dipendenze (ad esempio i framework) più la configurazione di distribuzione ed esecuzione da usare da un runtime del contenitore. In genere, un'immagine deriva da più immagini di base sovrapposte tra loro per formare il file system del contenitore. Un'immagine non è modificabile dopo la creazione.
Dockerfile: file di testo che contiene istruzioni per la creazione di un'immagine Docker. È come uno script batch, la prima riga indica l'immagine di base da cui iniziare e quindi seguire le istruzioni per installare i programmi necessari, copiare i file e così via, fino a ottenere l'ambiente di lavoro necessario.
Compilazione: azione di compilazione di un'immagine del contenitore in base alle informazioni e al contesto forniti dal dockerfile, oltre a file aggiuntivi nella cartella in cui viene compilata l'immagine. È possibile compilare immagini con il comando Docker seguente:
docker build
Contenitore: un'istanza di un'immagine Docker. Un contenitore rappresenta l'esecuzione di una singola applicazione, processo o servizio. È costituito dal contenuto di un'immagine Docker, di un ambiente di esecuzione e di un set standard di istruzioni. Quando si ridimensiona un servizio, si creano più istanze di un contenitore dalla stessa immagine. In alternativa, un processo batch può creare più contenitori dalla stessa immagine, passando parametri diversi a ogni istanza.
Volumi: offrono un file system scrivibile che il contenitore può utilizzare. Poiché le immagini sono di sola lettura, ma la maggior parte dei programmi deve scrivere nel file system, i volumi aggiungono un livello scrivibile, sopra l'immagine del contenitore, in modo che i programmi abbiano accesso a un file system scrivibile. Il programma non sa che sta accedendo a un file system a più livelli, è solo il file system come di consueto. I volumi risiedono nel sistema host e vengono gestiti da Docker.
Tag: un contrassegno o un'etichetta che è possibile applicare alle immagini in modo che sia possibile identificare immagini o versioni diverse della stessa immagine (a seconda del numero di versione o dell'ambiente di destinazione).
Compilazione a più fasi: funzionalità, dal momento che Docker 17.05 o versione successiva consente di ridurre le dimensioni delle immagini finali. Ad esempio, un'immagine di base di grandi dimensioni contenente l'SDK può essere usata per la compilazione e la pubblicazione e quindi è possibile usare un'immagine di base di sola runtime di piccole dimensioni per ospitare l'applicazione.
Repository (repository): raccolta di immagini Docker correlate, etichettate con un tag che indica la versione dell'immagine. Alcuni repository contengono più varianti di un'immagine specifica, ad esempio un'immagine contenente SDK (più pesanti), un'immagine contenente solo runtime (più leggeri) e così via. Queste varianti possono essere contrassegnate con tag. Un singolo repository può contenere varianti di piattaforme, ad esempio un'immagine Linux e un'immagine Windows.
Registro di sistema: servizio che fornisce l'accesso ai repository. Il Registro di sistema predefinito per la maggior parte delle immagini pubbliche è Docker Hub (di proprietà di Docker come organizzazione). Un registro contiene in genere repository di più team. Le aziende hanno spesso registri privati per archiviare e gestire le immagini create. Registro Azure Container è un altro esempio.
Immagine multi-architettura: per più architetture (o multipiattaforma), si tratta di una funzionalità Docker che semplifica la selezione dell'immagine appropriata, in base alla piattaforma di esecuzione di Docker. Ad esempio, quando un Dockerfile richiede un'immagine di base FROM mcr.microsoft.com/dotnet/sdk:8.0 dal registro, ottiene effettivamente 8.0-nanoserver-ltsc2022, 8.0-nanoserver-1809 o 8.0-bullseye-slim, a seconda del sistema operativo e della versione in cui è in esecuzione Docker.
Docker Hub: un registro pubblico per caricare immagini e usarle. Docker Hub offre l'hosting di immagini Docker, registri pubblici o privati, trigger di compilazione e web hook e l'integrazione con GitHub e Bitbucket.
Registro Azure Container: una risorsa pubblica per l'uso di immagini Docker e dei relativi componenti in Azure. Questo fornisce un registro vicino alle distribuzioni in Azure e che consente di controllare l'accesso, consentendo di usare i gruppi e le autorizzazioni di Azure Active Directory.
Docker Trusted Registry (DTR): servizio registro Docker (da Docker) che può essere installato in locale in modo che si trovi all'interno del data center e della rete dell'organizzazione. È utile per le immagini private che devono essere gestite all'interno dell'organizzazione. Docker Trusted Registry è incluso come parte del prodotto Docker Datacenter.
Docker Desktop: strumenti di sviluppo per Windows e macOS per la compilazione, l'esecuzione e il test dei contenitori in locale. Docker Desktop per Windows offre ambienti di sviluppo sia per i contenitori Linux che per i contenitori Windows. L'host Docker Linux in Windows si basa su una macchina virtuale Hyper-V . L'host per i contenitori di Windows si basa direttamente su Windows. Docker Desktop per Mac si basa sul framework Hypervisor Apple e sull'hypervisor xhyve, che fornisce una macchina virtuale host Docker Linux in macOS. Docker Desktop per Windows e per Mac sostituisce Docker Toolbox, basato su Oracle VirtualBox.
Compose: uno strumento da riga di comando e un formato di file YAML con metadati per la definizione e l'esecuzione di applicazioni multi-contenitore. Si definisce una singola applicazione basata su più immagini con uno o più file .yml che possono eseguire l'override dei valori a seconda dell'ambiente. Dopo aver creato le definizioni, è possibile distribuire l'intera applicazione multi-contenitore con un singolo comando (docker-compose up) che crea un contenitore per ogni immagine nell'host Docker.
Cluster: raccolta di host Docker esposti come se fosse un singolo host Docker virtuale, in modo che l'applicazione possa essere ridimensionata in più istanze dei servizi distribuiti tra più host all'interno del cluster. È possibile creare cluster Docker con Kubernetes, Azure Service Fabric, Docker Swarm e Mesosphere DC/OS.
Orchestrator: strumento che semplifica la gestione dei cluster e degli host Docker. Gli agenti di orchestrazione consentono di gestire le immagini, i contenitori e gli host tramite un'interfaccia della riga di comando o un'interfaccia grafica. È possibile gestire la rete dei contenitori, le configurazioni, il bilanciamento del carico, l'individuazione dei servizi, la disponibilità elevata, la configurazione dell'host Docker e altro ancora. Un orchestratore è responsabile dell'esecuzione, della distribuzione, del ridimensionamento e della correzione dei carichi di lavoro su una collezione di nodi. In genere, i prodotti dell'agente di orchestrazione sono gli stessi prodotti che forniscono un'infrastruttura cluster, ad esempio Kubernetes e Azure Service Fabric, tra le altre offerte del mercato.