Eliminar servicios que ya no se referencian en el archivo de composición
En este paso, modificaremos nuevamente nuestro archivo docker-compose.yml
, esta vez eliminando un servicio. Cuando volvamos a desplegar el stack, Docker Swarm detectará que un servicio ya no está definido en el archivo de composición y lo eliminará. Este proceso a veces se denomina "eliminar" (pruning) servicios.
Primero, editemos el archivo docker-compose.yml
para eliminar el servicio alpine
.
nano ~/project/docker-compose.yml
Elimina toda la sección alpine:
del archivo. El archivo debería volver a su estado original, definiendo solo el servicio web
:
version: "3.8"
services:
web:
image: nginx:1.21.6
ports:
- "80:80"
Guarda el archivo modificado presionando Ctrl + X
, luego Y
y luego Enter
.
Ahora, despleguemos el stack nuevamente utilizando el archivo docker-compose.yml
modificado.
docker stack deploy -c ~/project/docker-compose.yml mywebstack
Docker Swarm comparará el estado actual del stack mywebstack
con la definición en el archivo docker-compose.yml
actualizado. Notará que el servicio alpine
ya no está presente en el archivo y eliminará el servicio correspondiente y sus tareas del Swarm. Deberías ver una salida que indique que el servicio alpine
se está eliminando.
Para verificar que el servicio alpine
se ha eliminado, lista los servicios en el stack nuevamente.
docker stack services mywebstack
Ahora solo deberías ver el servicio mywebstack_web
en la lista. El servicio mywebstack_alpine
debería haber desaparecido.
Finalmente, para limpiar el entorno de Swarm, podemos eliminar el stack completo.
docker stack rm mywebstack
Este comando elimina el stack mywebstack
, incluyendo todos sus servicios y tareas. Deberías ver una salida que confirme la eliminación.
Para verificar que el stack se ha eliminado, lista los stacks nuevamente.
docker stack ls
El mywebstack
ya no debería aparecer en la lista.
Has eliminado con éxito un servicio de tu stack eliminándolo del archivo docker-compose.yml
y volviéndolo a desplegar, y luego has limpiado el entorno eliminando el stack completo.