2016-04-16 4 views
14

Gibt es eine Möglichkeit, ich kann das Protokoll eines Behälters sehen, der beendet wurde?Docker Blick auf das Protokoll eines Exit-Containers

Ich kann die Container-ID des Exit-Container mit docker ps -a abrufen, aber ich möchte wissen, was passiert ist, als es ausgeführt wurde.

+0

Möglichem Duplikat ist [Wenn eine Protokolldatei mit Protokollen aus einem Behälter ist?] (Https://stackoverflow.com/questions/33017329/where-is-a-log-file -mit-logs-from-a-container) – icyerasor

Antwort

18

Verwenden Sie docker logs. Es funktioniert auch für gestoppt Container und erfasst den gesamten STDOUT und STDERR Ströme des Hauptprozesses des Containers:

$ docker run -d --name test debian echo "Hello World" 
02a279c37d5533ecde76976d7f9d1ca986b5e3ec03fac31a38e3dbed5ea65def 

$ docker ps -a 
CONTAINER ID IMAGE  COMMAND  CREATED    STATUS      PORTS    NAMES 
49daa9d41a24 debian "echo test" 2 minutes ago  Exited (0) 2 minutes ago      test 

$ docker logs -t test 
2016-04-16T15:47:58.988748693Z Hello World 
4

docker logs <container id> | tail -n 50 für die letzten fünfzig Zeilen - nützlich, wenn Ihr Behälter für eine lange Zeit ausgeführt wurde.

+1

'docker logs --tail = 50' macht den Trick – Whitefret

0

direkt um die Logdatei eines verlassenen Behälters in weniger gescrollt bis zum Ende der Datei anzuzeigen, die ich benutze:

docker inspect $1 | grep 'LogPath' | sed -n "s/^.*\(\/var.*\)\",$/\1/p" | xargs sudo less +G 

läuft als ./viewLogs.sh Container

Diese Methode den hat profitieren über docker logs basierte Ansätze, dass die Datei direkt geöffnet wird, anstatt zu streamen.

sudo ist notwendig, da die LogPath/Datei in der Regel unter root eigenen