avatar

Differenze tra immagine e container Docker @ Serena Sensini | Giovedì 9 Giugno 2022 | 2 minuti

 

Se non ti sono chiare le differenze tra immagine e container Docker, leggi questo articolo per scoprirne di più!

 

Immagine

 

Il concetto di immagine può essere paragonato a quello di una classe nel mondo della programmazione orientata agli oggetti.

 

Se parliamo di macchine virtuali, le immagini sono solo snapshots della macchina virtuale in esecuzione che viene fotografata in momenti diversi, mentre le immagini in Docker sono immutabili e rappresentano la ricetta di un’applicazione.

 

Facendo un paragone con il mondo reale, l’immagine rappresenta una vera e propria ricetta con tutti gli ingredienti e il procedimento che dev’essere seguito passo passo per realizzare un certo piatto.

 

L’elenco delle immagini è possibile visualizzarlo tramite Docker Desktop oppure eseguendo il comando seguente:

 

docker images

 

Elenco delle immagini presenti visibili tramite Docker Desktop Elenco delle immagini presenti visibili tramite Docker Desktop

 

Docker container

Se un’immagine Docker è una classe, un Docker container (spesso abbreviato solamente in container) è l’istanza di una classe, o anche un oggetto.

 

Puoi creare, avviare, interrompere, spostare o eliminare un container utilizzando la riga di comando o Docker Desktop, e puoi connettere un container a una o più reti, aggiungere spazio di archiviazione o persino creare una nuova immagine in base al suo stato attuale.

 

L’elenco dei container è possibile visualizzarlo tramite Docker Desktop oppure eseguendo il comando seguente:

 

docker ps

 

Elenco dei container presenti visibili tramite Docker Desktop Elenco dei container presenti visibili tramite Docker Desktop

 

Un’applicazione viene eseguita utilizzando un cluster formato da uno o più container che sono isolati l’uno dall’altro e anche dalla macchina host in cui sono in esecuzione.

 

Nel mondo reale, capita spesso che un software funzioni su un computer ma non funzioni sul sistema di altre persone, e questo a causa di ambienti diversi.

 

Questo problema viene completamente risolto grazie alle immagini Docker e utilizzando questa tecnologia, l’applicazione funzionerà allo stesso modo sul sistema di chiunque.

 

Ogni sviluppatore di un team avrà esattamente la stessa istanza di sviluppo e ogni istanza di una certa applicazione sarà esattamente la stessa che hai visto in esecuzione su un altro sistema.

 

Differenze tra container e immagine

 

Proviamo a schematizzare un po’ le principali differenze elencate prima in questa tabella:

 

ImmagineContainer
Rappresenta il template del containerRappresenta l’istanza dell’immagine
Entità logica e astratta, spesso descritta tramite un DockerfileEntità reale e accedibile anche tramite riga di comando
Viene creata una voltaPuò essere creato n volte
Non hanno uno statoHanno uno stato preciso: avviato, arrestato, ecc.
OOP: classeOOP: oggetto
Mondo reale: ricettaMondo reale: piatto cucinato

 

Semplice, no?

 

Risorse utili

Ti potrebbe interessare anche...

avatar

Social