wake-up-neo.com

Starten Sie einen Dienst im Docker-Schwarmstapel neu

Weiß jemand, ob es eine Möglichkeit gibt, einen Dienst, der Teil eines Stapels ist, vom Docker-Schwarm neu starten zu lassen, ohne den gesamten Stapel neu zu starten?

50
tweeks200

Tun docker stack deploy wieder ist für mich der Weg zu Update-Diensten. Als Francois 'Antwort und auch nach meiner eigenen Erfahrung werden dabei nur Dienste aktualisiert, die aktualisiert werden müssen.

Aber manchmal scheint es beim Testen einfacher zu sein, nur einen einzigen Dienst neu zu starten. In meinem Fall musste ich das Volume löschen und den Dienst aktualisieren, um ihn als frisch zu starten. Ich bin nicht sicher, ob die Methode, die ich beschreiben werde, einen Nachteil hat. Ich habe es auf meinem Entwicklungsstack getestet und es hat großartig für mich funktioniert.

Rufen Sie die Service-ID ab, die Sie entfernen möchten, und verwenden Sie dann docker service update --force <id>, um die Aktualisierung des Dienstes zu erzwingen, die ihn effektiv erneut bereitstellt

$ docker stack services <stack_name>
ID                  NAME              ...
3xrdy2c7pfm3        stack-name_api    ...

$ docker service update --force 3xrdy2c7pfm3

Das --force Flag erzwingt das Aktualisieren des Dienstes, wodurch dieser neu gestartet wird.

63
Matt

Auf 0 skalieren und sichern:

docker service scale myservice=0
docker service scale myservice=10
42
Luke W

Mit Blick auf die docker stack Dokumentation:

Erweiterte Beschreibung

Erstellen und Aktualisieren eines Stapels aus einer Compose- oder DAB-Datei auf dem Schwarm

Von dieser Blogartikel : docker stack funktioniert ähnlich wie docker compose. Es ist idempotent . Wenn der Stack bereits implementiert ist, wird docker stack deploy startet nur die Dienste neu, deren Digest oder Tag aktualisiert wurde:

docker stack process

Nach meiner Erfahrung wird beim erneuten Bereitstellen desselben Stacks mit einem geänderten Dienst nur der aktualisierte Dienst neu gestartet .

ABER ... es scheint einige Einschränkungen für Änderungen zu geben, die berücksichtigt werden (einige berichten Fehler mit Bild-Tags ) Probieren Sie es aus und sehen Sie, ob es wie erwartet funktioniert.

Sie können auch service update wenn Sie sicher sein möchten, dass nur gezielte Dienste mit Ihren Änderungen aktualisiert werden.

Sie können auch auf diese ähnliche SO QA verweisen.

9