Une image ou un snapshot c'est la même chose. C'est un conteneur figé à un instant donné.
Si la commande docker ps -a afficher 11 conteneurs, c'est que tu as lancé 11 fois la commande docker run.
Pour utiliser un conteneur déjà lancé une fois avec docker run il faut utiliser la commande docker start.
Il n'est pas possible de modifier les paramètres d’exécution d'un docker run. Si l'on veut faire autre chose de notre conteneur il faut créé une image avec docker commit et lancer un nouveau conteneur avec docker run.
La commande docker build, qui permet de créer une image à partir d'un fichier Dockerfile, fait un commit après chaque RUN ce qui permet de reprendre la génération de l'image à la première erreur.
L'intérêt de tout ça est de pouvoir très facilement lancer un grand nombre de conteneurs identiques dans un environnement totalement maîtrisé. De plus Docker permet d'affecter automatiquement un numéro de port d'écoute d'un logiciel lancé dans un conteneur. Par exemple si je demande dans mon Dockerfile de publier le port 80 de mon serveur nginx et que je lance 10 conteneur sans préciser de numéro de port destination, Docker va attribuer 10 ports aléatoires pour les 10 nginx.
Comme Docker utilise un système de fichier unionfs, les 10 conteneurs ne prennent qu'une place sur le disque + le delta de chaque conteneur.
[^] # Re: Bug et interrogation
Posté par Gauthier (Mastodon) . En réponse à la dépêche Docker : Tutoriel pour manipuler les conteneurs. Évalué à 2.
Une image ou un snapshot c'est la même chose. C'est un conteneur figé à un instant donné.
Si la commande
docker ps -aafficher 11 conteneurs, c'est que tu as lancé 11 fois la commandedocker run.Pour utiliser un conteneur déjà lancé une fois avec
docker runil faut utiliser la commandedocker start.Il n'est pas possible de modifier les paramètres d’exécution d'un
docker run. Si l'on veut faire autre chose de notre conteneur il faut créé une image avecdocker commitet lancer un nouveau conteneur avecdocker run.La commande
docker build, qui permet de créer une image à partir d'un fichier Dockerfile, fait un commit après chaqueRUNce qui permet de reprendre la génération de l'image à la première erreur.L'intérêt de tout ça est de pouvoir très facilement lancer un grand nombre de conteneurs identiques dans un environnement totalement maîtrisé. De plus Docker permet d'affecter automatiquement un numéro de port d'écoute d'un logiciel lancé dans un conteneur. Par exemple si je demande dans mon Dockerfile de publier le port 80 de mon serveur nginx et que je lance 10 conteneur sans préciser de numéro de port destination, Docker va attribuer 10 ports aléatoires pour les 10 nginx.
Comme Docker utilise un système de fichier unionfs, les 10 conteneurs ne prennent qu'une place sur le disque + le delta de chaque conteneur.