tag library imagenes hub compose docker docker-compose docker-swarm

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.

También puede referirse a este similar SO QA .


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.