Wie sehen die logs der ausgeführten Anwendung im docker-container?
Ich habe einen node-js-Anwendung ausgeführt wird, innerhalb docker-container in /usr/src/app. Ich möchte diese Anwendung ausführen, mit nohup (Knoten nohup index.js &). Was ist der beste Weg, um zu sehen, die Ausgabe angehängt nohup.aus für general - /debugging-Zwecke ?
Brauche ich Andockfenster cp die ganze Zeit zu kopieren, um host-os. Gibt es einen besseren Weg, dies zu erreichen ?
- Warum müssen Sie mit nohup?
- Ich bin mir bewusst, dass ich Sie einfach laufen, Knoten index.js und können mit docker logs zu sehen, die Ausgabe auf stdout, aber neugierig, wie sehen die log-Dateien im Falle dass, wenn ich eine log-Datei, in die die Ausgabe geschrieben wird
- Macht nohup schreiben in ein logfile? Was ist der name der Protokolldatei?
- es schreibt nohup.aus Datei
Du musst angemeldet sein, um einen Kommentar abzugeben.
Obwohl die Verwendung von logfiles in container (ohne Volumen-Montage) ist ein bekanntes anti-pattern, können Sie ganz einfach die Ausgabe die Dateien mit exec zum Beispiel zusammen mit Katze:
Besser Muster wäre zum speichern der Ausgabe in separate Volumen-montiert-Ordner entfernen Staates aus dem inneren Ihres Behälters, sondern würde auch ermöglichen es Ihnen, access-logs direkt aus dem host-system.
In diesem speziellen Fall, sehe ich keine Notwendigkeit für ein separates logfile, und auch nicht für nohup. Nur die Richtlinie festlegen, die für Ihre container, um neu starten, es automatisch (
--restart always
) statt nohup.Sie bei der Ausgabe des logs in
/dev/stdout
für alle normalen Protokolleverwenden
/dev/stderr
Rohr alle Fehler, die Sie haben, wenn Ihre Anwendung unterscheiden können zwischen normalen logs und Fehler-logs.Also statt der Definition Ihrer log wie
/var/log/nohup.log
definieren Sie das logfile zudev/stdout
Zugriff auf die logs werden dann genauso einfach wie das schreiben
docker logs <containername>
oderdocker-compose logs <servicename>
- wenn Sie begonnen haben, Ihren stack mitdocker-compose up
sehen Sie die Protokolle direkt vor Sie trotzdem sehr bequem.In der Produktion grade Sie wollen, verarbeiten Sie die log-stream weitere, Blick auf https://github.com/gliderlabs/logspout
Und wenn Sie wollen, gehen Sie eine Ebene tiefer, fügen Sie den ELK-stack, um es https://logz.io/learn/complete-guide-elk-stack/