Questo capitolo è dedicato ad uno degli argomenti più importanti di questo corso. Le immagini.
Iniziamo con la definizione tratta dal sito ufficiale:


“An Image is an ordered collection of root filesystem changes and the corresponding execution parameters for use within a container runtime.”

Moby Image readme.md v1.2


Tradotto: “Un’immagine è una raccolta ordinata di modifiche al filesystem di root e dei corrispondenti parametri di esecuzione da utilizzare all’interno di un container runtime.”

Mi rendo conto che da questa definizione si possa capire ben poco, cerco di rendere questa definizione più comprensibile.

Un immagine è fondamentalmente un pacchetto che contiene: Codice binario di un’App, dipendenze necessarie, Metadati e Istruzioni su come eseguire l’App.
Fondamentalmente è tutto qui.

L’applicazione verrà eseguita in un container, come processo dell’host. Questo significa che il kernel su cui gira il container creato a partire da questa immagine, è quello dell’host.

Le immagini e l’host condividono il kernel.

Un immagine può tuttavia utilizzare un Sistema Operativo diverso dall’host purché condividano il kernel, ad esempio potrei avere un host RedHat ed un container Ubuntu che condividono il kernel linux.


Spesso le immagini contengono svariate utility dei sistemi operativi di cui fanno parte, fornendo un ambiente il più completo o specializzato possibile. Questo determina inesorabilmente un aumento della loro dimensione. Un esempio è l’immagine di Ubuntu.
Di contro, possono essere anche molto scarne, privilegiando la leggerezza e lasciando agli utilizzatori l’onere di aggiungere i pacchetti necessari. Un esempio di questa categoria è Alpine.


Prosegui su: Com’è fatta un’immagine

Immagine: eberhard9 – it.freepik.com