Docker Struttura

Docker – Struttura

Gli elementi fondamentali della struttura di docker sono le immagini, i containers, i services e lo stack. Si possono considerare immagini e containers come l’equivalente di classi / istanze  utilizzate nei linguaggi di programmazione ad oggetti. Analogamente a quanto avviene per una classe che viene istanziata tramite la keyword new, anche le immagini sono “istanziate” utiilizando il comando docker run .  

Prima di entrare nel dettaglio di ogni singolo componente è necessario introdurre Dockerfile

Dockerfile è il file di configurazione dove specificare ciò che dovrà essere installato all’interno del containers: tutti i software che dovranno essere scaricati all’interno dell’immagine, ma anche le configurazioni (ad esempio le informazioni del networking). Al momento della creazione dell’immagine tramite il comando docker build, docker scarica tutto ciò che è stato indicato, per la creazione dell’immagine locale. 

E’ possibile utilizzare il repository ufficiale di docker, chiamato Docker Hub, per effettuare il download di immagini “preconfezionate”. E’ inoltre possibile effettuare il push di immagini personalizzate, dopo aver effettuato la registrazione. All’interno di Docker Hub sono presenti migliaia di immagini che possono essere utilizzate per scopi differenti. Troviamo ad esempio immagini di mysql, wordpress e soprattutto dotnet core e Sql Server

Una volta generata l’immagine è possibile interrogare il registry locale con il comando docker images lsche visualizzarerà un output del tipo:

La prima colonna indica il nome dell’immagine (indicato all’interno di DockerFile oppure specificato direttamente nel comando docker build, la seconda colonna è il tag con cui è possibile riferirsi all’immagine, mentre la terza colonna è l’ ID univoco che il repository locale ha dedicato all’immagine.

Le immagini sono scaricate all’interno del repository locale: anche se la dimensione delle immagini è spesso notevolmente inferiore a quella delle equivalenti macchine virtuali, è sempre consigliato rimuovere le immagini non utilizzate, per liberare spazio disco. 

 E’ possibile effettuare il run dell’immagine utilizzando il comando docker run, ad esempio

consente di eseguire l’immagine friendlyhello associando la porta esterna del container 4000 alla porta interna 80 dell’applicazione. 

Pubblicato da

Andrea Merlin

Laureato in informatica, diversi corsi di specializzazione legati allo Sviluppo Software e alla Computer forensics. Appassionato di nuove tecnologie, amo la programmazione, la Business Intelligence e tematiche legate alla Privacy.Sempre alla ricerca di nuove idee, stimoli … e progetti da seguire!Amo trascorrere il tempo libero in Val Borbera, un piccolo angolo del Piemonte, in provincia di Alessandria.