2016-06-21 8 views
12

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

+1

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

Antwort

5

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 :-)

12

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