Guides/Comment arrêter des conteneurs Docker
Comment arrêter des conteneurs Docker sur un Mac, un par un ou tous à la fois
En bref
Pour arrêter un conteneur Docker, lancez docker stop suivi de son nom ou de son ID ; docker ps les liste. Pour arrêter tous les conteneurs en cours d’exécution, lancez docker stop $(docker ps -q). Dans un projet Compose, docker compose stop arrête ses conteneurs et docker compose down les supprime en plus. docker stop demande au conteneur de s’arrêter et le force au bout de 10 secondes. Un conteneur qui revient a une politique de redémarrage ; désactivez-la avec docker update --restart=no. Vitals, un moniteur système pour Mac, arrête les conteneurs depuis la barre des menus : sa liste Conteneurs affiche la mémoire de chacun, et un clic l’arrête après vous l’avoir demandé.
Comment arrêter des conteneurs Docker depuis le Terminal
- 01 Lancez
docker pspour lister les conteneurs en cours d’exécution, avec leurs noms et leurs ID. - 02 Arrêtez-en un avec
docker stopet son nom, par exempledocker stop web-1. Vous pouvez en nommer plusieurs dans une même commande. - 03 Arrêtez tous les conteneurs en cours d’exécution avec
docker stop $(docker ps -q).docker ps -qn’affiche que les ID, et docker stop les prend tous. - 04 Pour un projet Compose, lancez
docker compose stopdans son dossier pour arrêter ses services, oudocker compose downpour les arrêter et supprimer les conteneurs et le réseau du projet. Les volumes restent, sauf si vous ajoutez-v. - 05 Relancez
docker ps. Un conteneur encore listé est toujours en train de s’arrêter, et celui qui revient un instant plus tard a une politique de redémarrage.
Les mêmes commandes fonctionnent avec OrbStack, Colima et Rancher Desktop quand la commande docker pointe vers eux. Podman a podman stop, et podman stop -a les arrête tous.
Arrêter un conteneur met fin à ses processus et conserve tout le reste, ses fichiers, ses réglages et ses volumes, prêt pour docker start. C’est donc la façon sûre de récupérer la mémoire et le processeur d’un conteneur dont vous ne vous servez pas. Le tableau ci-dessous le compare aux commandes que l’on utilise à côté.
docker stop, kill, pause, rm et compose down
| Commande | Ce qu’elle fait | À utiliser quand |
|---|---|---|
| docker stop | Envoie SIGTERM, puis SIGKILL au bout de 10 secondes | Presque toujours : l’app peut finir d’écrire et fermer ses connexions |
| docker kill | Envoie SIGKILL immédiatement | Un conteneur ignore docker stop |
| docker pause | Fige les processus, qui gardent leur mémoire | Vous voulez récupérer le processeur un moment, pas la mémoire |
| docker rm | Supprime un conteneur arrêté, ou un conteneur en cours d’exécution avec -f | Vous n’en avez plus besoin ; les volumes nommés restent |
| docker compose stop | Arrête les conteneurs d’un projet et les conserve | Vous allez bientôt relancer le même projet |
| docker compose down | Arrête et supprime les conteneurs et le réseau | Vous voulez repartir de zéro la prochaine fois ; ajoutez -v pour supprimer aussi les volumes |
Pourquoi un conteneur arrêté redémarre
Un conteneur doté d’une politique de redémarrage est relancé par Docker. Avec always, un conteneur que vous avez arrêté revient au prochain démarrage de Docker Desktop : les conteneurs arrêtés hier tournent de nouveau après un redémarrage. Avec unless-stopped, un conteneur que vous avez arrêté reste arrêté. Les fichiers Compose définissent souvent restart: always pour les bases de données et les caches.
Pour voir la politique d’un conteneur, lancez docker inspect --format '{{.HostConfig.RestartPolicy.Name}}' suivi de son nom. Pour la désactiver, lancez docker update --restart=no et le nom, ou modifiez restart: dans le fichier Compose.
Quand docker stop prend 10 secondes
docker stop attend que le processus principal du conteneur se termine après SIGTERM. Un processus qui ignore le signal, souvent un script shell qui ne le transmet pas, bloque l’arrêt pendant les 10 secondes entières avant que Docker ne le tue. docker stop -t 2 raccourcit l’attente. Corriger l’image la fait s’arrêter immédiatement : lancez l’app avec exec dans le script d’entrée, ou définissez init: true sur le service dans Compose.
Arrêter des conteneurs, et récupérer la mémoire
Sur un Mac, les conteneurs tournent dans une seule machine virtuelle Linux. Les arrêter libère leur mémoire à l’intérieur, mais la machine virtuelle peut continuer à la retenir : le Moniteur d’activité peut donc encore afficher un gros Virtual Machine Service for Docker. Resource Saver, ou quitter Docker Desktop, la rend à macOS ; voir Docker utilise trop de mémoire pour les réglages.
Arrêter des conteneurs sans le Terminal
La vue Containers de Docker Desktop a un bouton Stop sur chaque conteneur et sur chaque projet Compose. Elle se trouve dans la fenêtre de Docker Desktop : il faut donc ouvrir l’app pour s’en servir. Des apps de barre des menus comme Captain listent les conteneurs sous une icône de la barre des menus, avec un bouton de démarrage et d’arrêt pour chacun. Vitals fait de même depuis sa barre des menus, et ajoute ce qu’aucune d’elles ne montre : la mémoire et le processeur qu’utilise chaque conteneur, pour savoir lequel arrêter.
Ce que Vitals apporte
Vitals arrête les conteneurs depuis la barre des menus du Mac, leur mémoire sous les yeux.
- La liste Conteneurs du menu déroulant : chaque conteneur en cours d’exécution avec son projet Compose, son image et une barre pour sa mémoire
- Survolez-en un et cliquez sur le × qui apparaît. La ligne vous demande confirmation, puis l’arrête comme le fait
docker stop, avec 10 secondes pour s’arrêter proprement - Dans l’onglet Conteneurs de la fenêtre, sélectionnez-en plusieurs et cliquez en maintenant la touche Contrôle pour les arrêter ensemble, ou faites de même sur un projet Compose et choisissez Tout arrêter
- La mémoire, le processeur, le réseau, le disque et les ports publiés de chaque conteneur, avec Docker Desktop, OrbStack, Colima, Rancher Desktop et Podman
Bon à savoir
- Vitals demande avant d’arrêter quoi que ce soit, et ne démarre, ne supprime ni ne modifie jamais un conteneur.
- Un conteneur doté d’une politique de redémarrage peut être relancé par son moteur. La fenêtre le signale quand elle demande confirmation.
- Si le moteur refuse ou ne répond pas, la ligne indique que le conteneur tourne toujours.
- La liste Conteneurs apparaît quand un moteur est en cours d’exécution.
Questions fréquentes
Comment arrêter tous les conteneurs Docker à la fois ?
Lancez docker stop $(docker ps -q). La commande liste les ID de tous les conteneurs en cours d’exécution et arrête chacun d’eux. Dans Vitals, sélectionnez-les dans l’onglet Conteneurs et cliquez en maintenant la touche Contrôle pour les arrêter ensemble.
Quelle est la différence entre docker stop et docker kill ?
docker stop envoie SIGTERM et attend jusqu’à 10 secondes avant de forcer le conteneur avec SIGKILL. docker kill envoie SIGKILL immédiatement : l’app n’a pas le temps de finir d’écrire ni de fermer ses connexions.
Quelle est la différence entre docker compose stop et down ?
docker compose stop arrête les conteneurs et les conserve, prêts pour docker compose start. docker compose down les arrête et supprime les conteneurs et le réseau du projet ; les volumes restent, sauf si vous ajoutez -v.
Pourquoi mon conteneur Docker redémarre-t-il après que je l’ai arrêté ?
Il a une politique de redémarrage always : Docker le relance donc au démarrage de Docker Desktop. Lancez docker update --restart=no avec son nom, ou modifiez restart: dans le fichier Compose.
Arrêter un conteneur supprime-t-il ses données ?
Non. Un conteneur arrêté garde ses fichiers et ses volumes, et docker start le relance. docker rm supprime le conteneur ; les volumes nommés restent jusqu’à ce que vous les supprimiez.
Peut-on arrêter des conteneurs Docker depuis la barre des menus du Mac ?
Oui, avec Vitals. Son menu déroulant dans la barre des menus liste les conteneurs en cours d’exécution avec leur mémoire, et un clic arrête un conteneur après vous l’avoir demandé. Il fonctionne avec Docker Desktop, OrbStack, Colima, Rancher Desktop et Podman.
Dans le lexique
Autres guides
- Pourquoi mon Mac est si lent
- Ce qui vide la batterie de mon Mac
- Quelle app utilise mon processeur ou ma mémoire
- Pourquoi mon Mac ne se met pas en veille
- Chrome utilise trop de mémoire
- Pourquoi les ventilateurs de mon Mac font autant de bruit
- Comment régler la vitesse des ventilateurs sur un Mac
- Comment libérer de la RAM sur un Mac
- Docker utilise trop de mémoire
- Mélangeur de volume pour Mac
- Alternatives au Moniteur d’activité
- Alternatives à iStat Menus
- Alternatives à Stats
- Gestionnaire des tâches pour Mac
- Meilleurs moniteurs système pour Mac
- Meilleurs moniteurs de barre des menus pour Mac
- Meilleurs mélangeurs de volume pour Mac