library - download docker image
Reinicie un servicio en la pila de enjambres docker (3)
Escala a 0 y copia de seguridad:
docker service scale myservice=0
docker service scale myservice=10
¿Alguien sabe si hay una manera de hacer que el enjambre de la ventana acoplable reinicie un servicio que forma parte de una pila sin reiniciar toda la pila?
Mirando la documentación de la docker stack
:
Descripción extendida
Crea y actualiza una pila a partir de un archivo compuesto o dab en el enjambre
De este artículo de blog : la docker stack
funciona de una manera similar a la docker compose
. Es idempotente . Si la pila ya está implementada, la docker stack deploy
reiniciará solo aquellos servicios que tengan el compendio o la etiqueta actualizados:
Desde mi experiencia, cuando vuelvo a implementar la misma pila con un cambio de servicio, solo se reiniciará el servicio actualizado .
PERO ... parece que hay algunas limitaciones a los cambios que se tienen en cuenta (algunos errores de informe con etiquetas de imagen ), así que inténtelo y vea si funciona como se espera.
También puede usar la service update
si desea asegurarse de que solo el servicio dirigido esté actualizado con sus cambios.
Hacer la docker stack deploy
nuevo para mí es el camino a seguir para actualizar los servicios. Como respuesta de Francois , y también en mi propia experiencia, al hacerlo solo se actualizan los servicios que deben actualizarse.
Pero a veces, al probar cosas, parece más fácil reiniciar un solo servicio. En mi caso, tuve que borrar el volumen y actualizar el servicio para iniciarlo como si fuera nuevo. No estoy seguro de si hay algún inconveniente con el método que describiré. Lo probé en mi pila de desarrollo y funcionó muy bien para mí.
Obtenga la ID de servicio que desea eliminar y luego use la docker service update --force <id>
para forzar la actualización del servicio que lo re-implementará de manera efectiva
$ docker stack services <stack_name>
ID NAME ...
3xrdy2c7pfm3 stack-name_api ...
$ docker service update --force 3xrdy2c7pfm3
El indicador --force
forzará la actualización del servicio y hará que se reinicie.