Aller au contenu principal

Les images de conteneurs

Dans la section précédente, nous avions vu que pour exécuter des conteneurs, nous avions besoin de construire des images. Rentrons dans le vif du sujet pour voir comment les construire.

Qu'est-ce qu'une image de conteneur ?

Les images de conteneur sont des fichiers statiques, des sortes de clichés, immuables qui intègrent tout ce qu'il faut pour que l'application fonctionne, à l'exception du noyau du système d'exploitation qui lui est fourni par la machine hôte.

Une image de conteneur est donc constitué de l'ensemble des fichiers nécessaires à l'exécution d'une application, c'est-à-dire de l'application elle-même, ainsi que toutes ses dépendances (librairies), de ses fichiers de configurations...

Donc une image de container est quelque sorte l'équivalent d'un fichier ISO d'une machine virtuelle.

Principes de couches immuables

En fait, c'est un peu plus complexe que cela, car ces images sont constituées de plusieurs calques, ou couches, qui sont ensuite combinées pour former un seul système de fichiers virtuel.

Comme les images de conteneurs sont immuables, le seul moyen de les modifier est d'ajouter une nouvelle couche et de l'enregistrer en tant que nouvelle image.

Chaque nouvelle couche est construite au-dessus d’une autre couche pour former une nouvelle image. La première couche est ce qu'on appelle une image de base.

Qu'est-ce qu'un Dockerfile ?

D'ailleurs pourquoi parlons-nous d'un Dockerfile ? Tout simplement parce que Docker a popularisé l'utilisation des environnements conteneurisés et du coup, c'est devenu une sorte de norme.

Un Dockerfile est un fichier texte qui définit une suite d'instructions qui vont permettre d'installer tous les éléments nécessaires à l'exécution de notre application.

Nous avons à notre disposition une dizaine d'instructions. Si peu ? Oui et c'est suffisant. À cela s'ajoute aussi la possibilité de mettre des commentaires.

Passons maintenant à l'écriture de notre premier Dockerfile en passant en revue toutes les instructions à notre disposition.