Supprimer les services non référencés dans le fichier de composition
Dans cette étape, nous allons modifier à nouveau notre fichier docker-compose.yml
, cette fois en supprimant un service. Lorsque nous redéployons la pile, Docker Swarm détectera qu'un service n'est plus défini dans le fichier de composition et le supprimera. Ce processus est parfois appelé « nettoyage » (pruning en anglais) des services.
Tout d'abord, éditons le fichier docker-compose.yml
pour supprimer le service alpine
.
nano ~/project/docker-compose.yml
Supprimez toute la section alpine:
du fichier. Le fichier devrait revenir à son état initial, ne définissant que le service web
:
version: "3.8"
services:
web:
image: nginx:1.21.6
ports:
- "80:80"
Enregistrez le fichier modifié en appuyant sur Ctrl + X
, puis Y
, puis Entrée
.
Maintenant, déployez à nouveau la pile en utilisant le fichier docker-compose.yml
modifié.
docker stack deploy -c ~/project/docker-compose.yml mywebstack
Docker Swarm comparera l'état actuel de la pile mywebstack
avec la définition dans le fichier docker-compose.yml
mis à jour. Il remarquera que le service alpine
n'est plus présent dans le fichier et supprimera le service correspondant et ses tâches du Swarm. Vous devriez voir un message indiquant que le service alpine
est en cours de suppression.
Pour vérifier que le service alpine
a été supprimé, listez à nouveau les services de la pile.
docker stack services mywebstack
Vous devriez maintenant ne voir que le service mywebstack_web
répertorié. Le service mywebstack_alpine
devrait avoir disparu.
Enfin, pour nettoyer l'environnement Swarm, nous pouvons supprimer toute la pile.
docker stack rm mywebstack
Cette commande supprime la pile mywebstack
, y compris tous ses services et tâches. Vous devriez voir un message confirmant la suppression.
Pour vérifier que la pile a été supprimée, listez à nouveau les piles.
docker stack ls
La pile mywebstack
ne devrait plus être répertoriée.
Vous avez réussi à supprimer un service de votre pile en le supprimant du fichier docker-compose.yml
et en le redéployant, puis à nettoyer l'environnement en supprimant toute la pile.