Nettoyez 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.