Les commandes Docker à connaître par cœur
Dernier guide de cette partie. Votre conteneur nginx du guide précédent tourne toujours : utilisons-le pour pratiquer.
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.
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.
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
| Commande | Ce qu'elle fait |
|---|---|
| docker run | Crée et démarre un conteneur à partir d'une image. |
| docker ps | Liste les conteneurs en cours d'exécution. |
| docker ps -a | Liste tous les conteneurs, y compris arrêtés. |
| docker stop | Arrête proprement un conteneur actif. |
| docker start | Relance un conteneur déjà créé. |
| docker rm | Supprime définitivement un conteneur arrêté. |
| docker images | Liste les images téléchargées sur l'ordinateur. |
| docker rmi | Supprime 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.