Wenn ich docker-compose up
verwende, sehe ich Protokolle für alle Container in meiner docker-compose.yml
-Datei.
Wenn ich jedoch docker-compose run app
verwende, sehe ich nur die Konsolenausgabe für app
, aber keiner der Dienste, von denen app
abhängt. Wie kann die Protokollausgabe für die anderen Dienste angezeigt werden?
Siehe Docker-Protokolle
Sie können Docker Compose im getrennten Modus starten und sich später mit den Protokollen von all container verbinden. Wenn Sie mit der Überwachung der Protokolle fertig sind, können Sie sich von der Protokollausgabe ohne trennen, wodurch Ihre Dienste heruntergefahren werden.
docker-compose up -d
, um alle Dienste im getrennten Modus starten (-d
) (im getrennten Modus werden keine Protokolle angezeigt)docker-compose logs -f -t
, um attach selbst zu den Protokollen von alle laufenden Dienste zu gelangen, während -f
bedeutet, dass Sie der Protokollausgabe folgen und die Option -t
Ihnen Zeitstempel gibt (Siehe Docker reference )Ctrl + z
oder Ctrl + c
, um trennen aus der Protokollausgabe ohne Ihre laufenden Container herunterzufahrenWenn Sie an den Protokollen eines einzelnen Containers interessiert sind, können Sie stattdessen das Schlüsselwort docker
verwenden:
docker logs -t -f <container-name>
Speichern Sie die Ausgabe
Um die Ausgabe in einer Datei zu speichern, fügen Sie dem Befehl logs Folgendes hinzu:
docker-compose logs -f -t >> myDockerCompose.log
Wenn Sie Ausgabeprotokolle aus mehreren Containern anzeigen möchten. Z.B. Angenommen, Sie verfügen über einen API-Container und einen Portal-Container. Dann können Sie Folgendes tun:
docker-compose logs -t -f --tail 5 portal api
Dabei steht 5 für die letzten 5 Zeilen aus beiden Protokollen.