Beim Ausführen von Anwendungen mit Docker ist es wichtig zu wissen, wie man Container-Logs anzeigt. Diese Logs sind sehr nützlich, um zu überprüfen, ob die Anwendung normal läuft, Fehler auftreten oder ob der Dienst im Container erfolgreich gestartet ist.
In diesem Beispiel verwenden wir keinen bestimmten Containernamen. Verwenden Sie also ein allgemeines Format wie:
container-name
Oder wenn Sie es leichter verstehen möchten, stellen Sie sich vor, Ihr Container heißt:
projekt-name
Ersetzen Sie später einfach projekt-name durch den Namen Ihres eigenen Docker-Containers.
Um die Namen laufender Container zu überprüfen, verwenden Sie:
docker ps
Sehen Sie sich den Abschnitt NAMES an. Das ist der Containername, den Sie für den Befehl docker logs verwenden können.
1. Container-Logs anzeigen
Um die Logs eines Containers anzuzeigen, verwenden Sie den Befehl:
docker logs projekt-name
Ersetzen Sie projekt-name durch Ihren Containernamen.
Beispiel für das allgemeine Format:
docker logs container-name
Dieser Befehl zeigt die bereits aufgezeichneten Logs des Containers an. Diese Logs enthalten normalerweise Informationen wie Anwendungsprozesse beim Start, Fehler, Warnungen oder Meldungen, dass der Server aktiv ist.
2. Logs live anzeigen
Wenn Sie Logs in Echtzeit sehen möchten, verwenden Sie die Option -f.
docker logs -f projekt-name
Die Option -f bedeutet follow (folgen). Das Terminal zeigt dann kontinuierlich neue Logs an, solange der Container läuft.
Dies ist sehr nützlich beim Debuggen, zum Beispiel nach einem Neustart des Containers, einem Update der Anwendung oder um zu sehen, ob beim Zugriff auf die Website neue Fehler auftreten.
Um den Live-Log-Modus zu verlassen, drücken Sie:
STRG + C
Dies beendet nur die Anzeige der Logs im Terminal, nicht den Container.
3. Nur die letzten Logs anzeigen
Manchmal sind die Container-Logs sehr lang, besonders wenn die Anwendung schon lange läuft. Wenn Sie nur die letzten Zeilen sehen möchten, verwenden Sie --tail.
docker logs --tail=100 projekt-name
Der obige Befehl zeigt die letzten 100 Zeilen der Container-Logs an.
Wenn Sie die letzten 50 Zeilen sehen möchten:
docker logs --tail=50 projekt-name
Wenn Sie die letzten Logs sehen und gleichzeitig neue Logs verfolgen möchten, können Sie --tail und -f kombinieren.
docker logs --tail=100 -f projekt-name
Mit diesem Befehl zeigt Docker die letzten 100 Zeilen an und fährt dann fort, neue Logs live anzuzeigen.
4. Logs nach Zeit filtern
Docker kann Logs auch basierend auf bestimmten Zeitangaben anzeigen. Zum Beispiel nur Logs der letzten 10 Minuten:
docker logs --since=10m projekt-name
Oder der letzten Stunde:
docker logs --since=1h projekt-name
Um Logs bis zu einem bestimmten Zeitpunkt anzuzeigen:
docker logs --until=10m projekt-name
Diese Funktion ist nützlich, wenn Sie sich auf kürzlich aufgetretene Fehler konzentrieren möchten, ohne die gesamten Logs lesen zu müssen.
5. In den Container einsteigen
Neben dem Anzeigen von Logs von außen müssen Sie manchmal auch in den Container einsteigen, um Dateien, Ordner zu überprüfen oder bestimmte Befehle auszuführen.
Verwenden Sie den Befehl:
docker exec -it projekt-name sh
In der Regel verwenden schlanke Linux-Container sh.
Wenn Ihr Docker-Image bash unterstützt, können Sie auch verwenden:
docker exec -it projekt-name bash
Nachdem Sie im Container sind, können Sie den aktuellen Ordnerpfad überprüfen mit:
pwd
Und dann die Datei- und Ordnerliste anzeigen:
ls
Für detailliertere Ansicht:
ls -la
6. Anwendung von innerhalb des Containers prüfen
Nach dem Einsteigen in den Container können Sie überprüfen, ob die Anwendung läuft, indem Sie localhost auf dem von der Anwendung verwendeten Port testen.
Allgemeines Format:
wget -qO- http://localhost:PORT
Ersetzen Sie PORT durch den internen Port der Anwendung im Container.
Beispiel:
wget -qO- http://localhost:8080
Oder wenn curl im Container verfügbar ist:
curl http://localhost:PORT
Beispiel:
curl http://localhost:8080
Wenn die Anwendung normal läuft, wird in der Regel eine Antwort wie HTML, JSON oder ein bestimmter Text angezeigt.
7. Anwendung vom VPS oder Host aus prüfen
Neben dem Überprüfen von innerhalb des Containers können Sie die Anwendung auch direkt vom VPS oder Host-Server aus testen.
Allgemeines Format:
curl http://localhost:PORT
Ersetzen Sie PORT durch den auf dem VPS geöffneten Port oder den Docker-Port-Mapping.
Beispiel:
curl http://localhost:8080
Wenn Sie Docker verwenden, stellen Sie sicher, dass der Container-Port auf den Host-Port gemappt ist. Überprüfen Sie dies mit:
docker ps
Dort sehen Sie den Abschnitt PORTS, zum Beispiel:
0.0.0.0:8080->8080/tcp
Das bedeutet, dass Port 8080 auf dem VPS an Port 8080 im Container weitergeleitet wird.
8. Containernamen überprüfen
Wenn Sie unsicher sind, wie Ihr Container heißt, führen Sie aus:
docker ps
Dieser Befehl zeigt eine Liste der laufenden Container an.
Wenn Sie alle Container sehen möchten, einschließlich gestoppter:
docker ps -a
Dann sehen Sie den Abschnitt NAMES und verwenden diesen Namen für den Befehl docker logs.
Beispiel:
docker logs container-name
9. Beispiel für einen einfachen Debugging-Ablauf
Normalerweise beginnen Sie bei Problemen mit einer Docker-Anwendung damit, den Container zu überprüfen.
Zuerst prüfen Sie, ob der Container läuft:
docker ps
Dann zeigen Sie die letzten Logs an:
docker logs --tail=100 projekt-name
Wenn Sie in Echtzeit überwachen möchten:
docker logs -f projekt-name
Falls Sie in den Container einsteigen müssen:
docker exec -it projekt-name sh
Danach überprüfen Sie den Anwendungsordner:
pwd
ls -la
Dann prüfen Sie, ob die Anwendung auf dem internen Port antwortet:
wget -qO- http://localhost:PORT
Oder:
curl http://localhost:PORT
Fazit
Um Docker-Container-Logs anzuzeigen, wird am häufigsten der Befehl verwendet:
docker logs projekt-name
Wenn Sie Logs live sehen möchten:
docker logs -f projekt-name
Wenn Sie nur das Ende der Logs sehen möchten:
docker logs --tail=100 projekt-name
Und wenn Sie in den Container einsteigen müssen:
docker exec -it projekt-name sh
Mit diesen einfachen Befehlen können Sie den Zustand Ihrer Docker-Anwendung überprüfen, Fehler suchen, laufende Prozesse sehen und sicherstellen, dass der Dienst im Container aktiv ist.
Geschrieben von
Wilan
Kontributor tetap Bali Island Tekno yang aktif berbagi pengetahuan seputar teknologi, pemrograman, dan dunia rekayasa perangkat lunak.