Différence entre une image Docker et un conteneur
Sous Docker, il existe des concepts tels que des images, des conteneurs, etc. Ils sont étroitement liés, mais en même temps différent. Au début de votre apprentissage de Docker, la compréhension de ces concepts est souvent confuse. Cet article explique la différence entre une image Docker et un conteneur.
Qu’est-ce qu’une image Docker?
Une image Docker est un fichier immuable, qui constitue une capture instantanée d’un conteneur. Généralement, les images sont créées avec la commande « docker build ». Et puis, ils vont produire un conteneur quand ils sont lancés avec la commande « run ». En revanche, dans un registre Docker, les images sont stockées comme « registry.hub.docker.com ». Comme elles peuvent devenir assez volumineuses, les images sont conçues pour composer des couches de d’autres images, ce qui permet d’envoyer une quantité minimale de données lors du transfert des images sur le réseau.
Les images sont stockées dans un registre Docker, tel que Docker Hub, et peuvent être téléchargées à l’aide de la commande docker pull:
$ docker pull ubuntu Using default tag: latest latest: Pulling from library/ubuntu fdd5d7827f33: Pull complete a3ed95caeb02: Pull complete fd2731e4c50c: Pull complete Digest: sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2 Status: Downloaded newer image for ubuntu:14.04
Pour afficher les images Docker téléchargées, exécutez « docker images »:
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 14.04 25fd21cfc6c0 3 weeks ago 125MB
Qu’est-ce qu’un conteneur Docker?
Un conteneur Docker est une instance exécutable d’une image. En utilisant l’API ou la CLI de Docker, nous pouvons créer, démarrer, arrêter, déplacer ou supprimer un conteneur. De manière avantageuse, nous pouvons connecter un conteneur à un ou plusieurs réseaux, y attacher de la mémoire ou créer une nouvelle image sur la base de son état actuel. De plus, il consiste en une image Docker, un environnement d’exécution et un ensemble d’instructions standard.
Si on applique le concept de l’orienté objet. Si une image est une classe, un conteneur est une instance d’une classe, c’est-à-dire un objet d’exécution. Nous pouvons également dire que les conteneurs sont en quelque sorte la raison pour laquelle vous utilisez Docker car ils constituent des encapsulations légères et portables d’un environnement permettant d’exécuter des applications.
Conclusion
Ce que vous devez retenir, c’est que les images sont des instantanés figés de conteneurs vivants. Alors que les conteneurs exécutent les instances d’une image.