Une image conteneur est une accumulation de couches assemblées comme suit :
- Image de base
- Bibliothèques
- Binaires
- Dépendances
- Fichiers de configuration
Lors de la création de nouvelles images, tout commence par la couche inférieure, c’est-à-dire l’image de base. Celle-ci constitue le point de départ de la plupart des workflows de développement basés sur des conteneurs. De nombreuses images de base comprennent des distributions Linux basiques ou minimales (telles que Debian, Ubuntu, Red Hat Enterprise Linux (RHEL), Rocky Linux ou Alpine). C’est dans les images de base que sont stockés les fichiers du système de fichiers du conteneur. Le processus de création d’images de base permet aux développeurs de créer un environnement standardisé qui prend en charge les images de conteneurs personnalisées.
Ensuite, une succession de couches de système de fichiers est ajoutée et empilée au-dessus de l’image de base, notamment :
- Les bibliothèques requises, qui sont des collections standard d’algorithmes et de templates de classes que les programmeurs peuvent utiliser pour créer des structures de données communes (par exemple, des listes, des piles et des files d’attente)
- Les binaires nécessaires, c’est-à-dire les fichiers exécutables requis pour mettre en œuvre les différents programmes et commandes. Les dossiers binaires sont conçus pour que les utilisateurs puissent accéder rapidement aux exécutables dont ils ont besoin.
- Les diverses dépendances, qui régissent la création et l’exploitation des conteneurs.
- Les fichiers de configuration (configs) nécessaires pour exécuter le conteneur en question.
Concernant les images de conteneurs qui incorporent des images déjà existantes, l’image de base de ces dernières est appelée image parente. Les images d’origine n’ont pas d’image parente.