Le immagini Docker sono organizzate in una serie di livelli sovrapposti. Ogni livello rappresenta una serie di modifiche apportate al sistema di file. Quando costruisci un’immagine Docker, ogni istruzione nel Dockerfile (come un comando RUN, COPY, ecc.) crea un nuovo livello nell’immagine.
I livelli sono leggeri e riutilizzabili. Docker utilizza un meccanismo di file system in sovrapposizione per consentire a ciascun livello di condividere i file comuni con gli altri livelli, il che minimizza la quantità di spazio di archiviazione necessario.
Una volta creato, un livello non può essere modificato – può solo essere copiato e modificato per creare un nuovo livello. Questo modello immutabile aiuta a mantenere le immagini docker coerenti e riproducibili.
Nelle immagini Docker, c’è un livello speciale chiamato “livello di scrittura” o “contenitore”. Questo è l’unico livello che può essere modificato quando il contenitore è in esecuzione.
Il concetto di livelli di immagine Docker aiuta a cose come l’efficienza del caching durante la creazione dell’immagine Docker, la condivisione di immagini tra contenitori ecc.