Un'immagine container è un insieme di livelli che includono:
- Immagine di base
- Librerie
- Binari
- Dipendenze
- File di configurazione
Nelle nuove immagini costruite da zero, tutto inizia con il livello inferiore, ovvero l'immagine di base. L'immagine di base è il punto di partenza della maggior parte dei workflow basati su container. Molte immagini di base comprendono distribuzioni Linux di base o minime (come Debian, Ubuntu, Red Hat Enterprise Linux (RHEL), Rocky Linux o Alpine). Le immagini di base sono il luogo in cui sono memorizzati i file del file system del container. Il processo di creazione di immagini di base (noto come "building") consente agli sviluppatori di costruire un ambiente standardizzato che supporta immagini container personalizzate.
Una serie di livelli di file system viene quindi aggiunta e sovrapposta all'immagine di base, tra cui:
- Librerie obbligatorie, ovvero insiemi standard di algoritmi e modelli di classe che i programmatori possono utilizzare per creare strutture di dati comuni (ad esempio elenchi, stack e code)
- Binari necessari, ovvero file eseguibili necessari per l'implementazione di diversi programmi e comandi. Le cartelle binarie sono progettate in modo che gli utenti possano accedere rapidamente agli eseguibili necessari.
- Diverse dipendenze che regolano la creazione e il funzionamento dei container.
- File di configurazione (config) necessari per eseguire il container in questione.
Per le immagini container che incorporano immagini esistenti, l'immagine di base delle immagini esistenti è nota come immagine parent. Se un'immagine è completamente originale, non possiede un'immagine parent.