Gibt es eine Möglichkeit, die Container, die mit der docker service create
im Docker Schwarm-Modus erstellt werden protokollieren?Wie loggen Container in Docker Schwarm-Modus
Antwort
Die Funktion ist noch nicht implementiert. Wie @ronkot sagte, müssen Sie herausfinden, auf welchem Knoten Ihre Dienstinstanz ausgeführt wird und direkt eine Verbindung zu ihr herstellen.
Auch wenn die Funktion wahrscheinlich in Zukunft implementiert wird, empfehle ich Ihnen dringend, mit einem Docker-Loggingtreiber zu spielen, um alle Logs Ihres Clusters zu zentralisieren. Hier gibt es mehr Informationen: https://docs.docker.com/engine/admin/logging/overview/
Fo Beispiel die GELF Fahrer ist perfekt, wenn Sie so etwas wie Logstash + Kibana :-)
verwenden möchten schließlich, dass Feature in Docker 17.03 umgesetzt wurde. Sie können die Protokolle eines Dienstes erhalten auf verschiedenen/mehreren Knoten mit diesem Befehl:
docker service logs -f {NAME_OF_THE_SERVICE}
Sie können mit dem Namen des Dienstes erhalten:
docker service ls
Beachten Sie, dass dies ein experimentelle Funktion (nicht Produktion bereit), und um es zu benutzen, müssen Sie den experimentellen Modus aktivieren:
Update:docker logs service ist jetzt eine Standardfunktion von Docker> = 17.06. https://docs.docker.com/engine/reference/commandline/service_logs/#parent-command
Wenn Sie Log-Aggregation mit 'docker-compose logs' suchen, ist diese im Docker-Schwarm-Modus noch nicht implementiert. Wenn Sie Protokolle benötigen, können Sie (AFAIK) nur herausfinden, welche Knoten Ihren Container hosten und 'docker logs' direkt verwenden. –
ronkot