Vous connaissez déjà docker run et docker ps. Ce guide complète ce socle avec les commandes que vous taperez le plus souvent, une fois qu'une image existe et qu'un conteneur a déjà tourné au moins une fois.

Voir tous les conteneurs, même arrêtés

docker ps, vu au guide précédent, n'affiche que les conteneurs en cours d'exécution. Un conteneur arrêté n'est pas détruit pour autant : il reste sur votre ordinateur, prêt à être relancé. Pour voir absolument tous les conteneurs, y compris arrêtés, ajoutez l'option -a :

La colonne STATUS distingue clairement les deux états : Up pour un conteneur actif, Exited pour un conteneur arrêté, avec le code de sortie entre parenthèses (0 signifie qu'il s'est terminé sans erreur).

Arrêter et relancer un conteneur

docker stop arrête proprement un conteneur en cours d'exécution, en lui laissant le temps de terminer ce qu'il fait. docker start relance un conteneur déjà créé, sans en recréer un nouveau. Les deux commandes prennent en argument le nom ou l'identifiant du conteneur.

Utiliser le nom plutôt que l'identifiant

Le nom d'un conteneur (ici jolly_hopper, généré automatiquement au guide précédent) est plus facile à retenir et à taper que son identifiant complet. Vous pouvez aussi utiliser seulement les premiers caractères de l'identifiant, comme 7f2a, tant qu'ils suffisent à désigner un seul conteneur sans ambiguïté.

Supprimer un conteneur

Un conteneur arrêté peut être définitivement supprimé avec docker rm. Contrairement à docker stop, cette suppression est irréversible pour ce conteneur précis (mais rappelez-vous du guide 3 : l'image, elle, reste intacte). Un conteneur doit être arrêté avant d'être supprimé, sauf si vous ajoutez l'option -f pour forcer la suppression d'un conteneur encore actif.

Gérer les images téléchargées

Les images se gèrent avec des commandes très proches. docker images liste les images présentes sur votre ordinateur, docker rmi (pour « remove image ») en supprime une.

Une image encore utilisée ne peut pas être supprimée

Si vous essayez de supprimer une image dont un conteneur, même arrêté, dépend encore, Docker refuse et l'indique clairement. Supprimez d'abord le ou les conteneurs concernés avec docker rm, puis réessayez docker rmi.

Le mémo de cette partie

CommandeCe qu'elle fait
docker runCrée et démarre un conteneur à partir d'une image.
docker psListe les conteneurs en cours d'exécution.
docker ps -aListe tous les conteneurs, y compris arrêtés.
docker stopArrête proprement un conteneur actif.
docker startRelance un conteneur déjà créé.
docker rmSupprime définitivement un conteneur arrêté.
docker imagesListe les images téléchargées sur l'ordinateur.
docker rmiSupprime une image, si aucun conteneur n'en dépend.

Une version complète de ce mémo, avec toutes les commandes du parcours, vous attend au tout dernier guide.

Vérifiez que vous avez compris

Vous tapez docker rmi nginx, mais un conteneur créé à partir de cette image existe encore, même arrêté. Que va-t-il se passer ?

Docker va refuser la suppression et afficher une erreur, parce qu'un conteneur dépend encore de cette image. Il faut d'abord supprimer ce conteneur avec docker rm, puis relancer docker rmi nginx.