# Immagini

L'immagine può essere vista come l'eseguibile che avvia un container. A partire da un'immagine, è possibile creare molteplici container, che rappresentano *istanze* di quell'immagine. In altri termini, l'immagine si comporta come una specie di *archivio*, contenente l'applicativo da eseguire, insieme a tutte le sue dipendenze, librerie e altri asset necessari.

Ogni immagine é composta da piú strati, o `layer`, che introducono nuove funzionalità o modifiche. La separazione delle aggiunte su layer distinti consente di condividere i layer comuni tra diverse immagini, evitando la duplicazione dei dati e ottimizzando l'uso dello spazio su disco.

![layer](asset/img/layer.png)

La definizione dell'immagine avviene tramite i `Dockerfile`, che specificano le istruzioni necessarie per costruire l'immagine.
