
Manipulation : arrêt, redémarrage et suppression du conteneur
Apprenez à manipuler vos conteneurs Docker Nginx : arrêter (stop), redémarrer (start) et supprimer (rm) proprement un conteneur pour une gestion efficace.
Maîtriser l'arrêt : la commande `docker stop`
Une fois votre serveur Nginx lancé et vérifié, il est essentiel de savoir comment l'arrêter proprement sans pour autant le supprimer définitivement. L'arrêt d'un conteneur interrompt son processus principal mais conserve son état et sa configuration, vous permettant de le redémarrer ultérieurement. C'est utile pour libérer temporairement des ressources (comme un port réseau) ou pour effectuer des opérations de maintenance.
La commande dédiée à cette opération est `docker stop`. Elle envoie un signal d'arrêt (SIGTERM, puis SIGKILL après un délai) au processus principal à l'intérieur du conteneur, lui permettant de s'arrêter gracieusement si possible. Pour arrêter notre conteneur Nginx, que nous avons nommé `mon-serveur-nginx`, ouvrez votre terminal et exécutez :
docker stop mon-serveur-nginxDocker affichera le nom du conteneur en confirmation. Pour vérifier que le conteneur est bien arrêté, vous pouvez utiliser la commande `docker ps`. Normalement, le conteneur `mon-serveur-nginx` n'apparaîtra plus dans la liste des conteneurs actifs. Vous pouvez aussi essayer d'accéder à nouveau à `http://localhost` (ou `http://localhost:8080` si vous aviez utilisé ce port) dans votre navigateur ; la connexion devrait échouer, confirmant l'arrêt du serveur.
Pour voir les conteneurs arrêtés, utilisez `docker ps -a` (l'option `-a` signifie 'all'). Vous devriez y retrouver `mon-serveur-nginx` avec un statut indiquant `Exited`.
Relancer le service : la commande `docker start`
Après avoir arrêté un conteneur, vous pouvez le redémarrer très facilement sans avoir à recréer toute la configuration (comme le mapping de port ou le nom). Il reprendra son exécution là où il s'était arrêté, en utilisant la même configuration initiale.
La commande pour relancer un conteneur arrêté est `docker start`. Elle prend simplement en argument le nom ou l'identifiant du conteneur à redémarrer. Pour relancer notre serveur Nginx :
docker start mon-serveur-nginxComme pour `docker stop`, Docker confirmera en affichant le nom du conteneur. Pour vérifier que le redémarrage a réussi, utilisez à nouveau `docker ps`. Cette fois, `mon-serveur-nginx` devrait réapparaître dans la liste des conteneurs actifs. Rafraîchissez la page `http://localhost` dans votre navigateur : la page d'accueil de Nginx devrait être de nouveau accessible, confirmant que le serveur est opérationnel.
Nettoyer l'environnement : la commande `docker rm`
Lorsque vous n'avez plus besoin d'un conteneur, il est important de le supprimer pour libérer les ressources système qu'il occupe (espace disque pour son système de fichiers modifiable, nom réservé, etc.). La suppression est une action définitive : une fois supprimé, le conteneur ne peut pas être récupéré (bien que l'image utilisée pour le créer reste disponible).
Une condition préalable essentielle pour supprimer un conteneur est qu'il doit être à l'état arrêté. Si vous essayez de supprimer un conteneur en cours d'exécution, Docker renverra une erreur. Assurez-vous donc d'avoir d'abord exécuté `docker stop mon-serveur-nginx`.
La commande de suppression est `docker rm`, suivie du nom ou de l'identifiant du conteneur. Pour supprimer notre conteneur Nginx (préalablement arrêté) :
docker rm mon-serveur-nginxDocker affichera le nom du conteneur supprimé en guise de confirmation. Vous pouvez vérifier sa disparition en listant tous les conteneurs (même arrêtés) avec `docker ps -a`. Le conteneur `mon-serveur-nginx` ne devrait plus figurer dans la liste. Tenter de le redémarrer avec `docker start` provoquera une erreur indiquant qu'il n'existe pas.
Note : Il existe une option `-f` (ou `--force`) pour `docker rm` qui permet de supprimer un conteneur même s'il est en cours d'exécution (`docker rm -f mon-serveur-nginx`). Cependant, il est généralement préférable d'arrêter le conteneur proprement avec `docker stop` avant de le supprimer, sauf cas exceptionnel.