Quelle est la différence entre une image Docker et un conteneur ?
Réponse
Une image Docker est un modèle en lecture seule qui contient le système de fichiers, les dépendances et la configuration nécessaires pour faire tourner une application, construite une fois à partir d'un Dockerfile puis stockée et versionnée. Un conteneur est une instance en cours d'exécution de cette image, avec une couche en écriture ajoutée par-dessus pour tous les changements effectués pendant son fonctionnement. On peut lancer plusieurs conteneurs indépendants à partir de la même image, chacun avec son propre état d'exécution, ses propres processus, et sa propre couche d'écriture, sans que l'image d'origine soit jamais modifiée.
Piège classique
Le piège est de croire que les modifications faites dans un conteneur en cours d'exécution, comme installer un paquet manuellement, sont conservées si on relance un nouveau conteneur depuis la même image : elles ne persistent que dans la couche d'écriture de ce conteneur précis, et disparaissent avec lui à moins d'avoir été explicitement intégrées dans une nouvelle image.