Docker-Protokolle - Zeigen Sie die Implementierung der Docker-Container-Protokolle an

Docker-Protokolle - Zeigen Sie die Implementierung der Docker-Container-Protokolle an

Sie können die Containerprotokolle über den Befehl „Docker Logs“ anzeigen.

Befehlsformat:

$ Docker-Protokolle [OPTIONEN] CONTAINER
 Optionen:
    --details Weitere Informationen anzeigen -f, --follow Echtzeitprotokolle verfolgen --since string Protokolle nach einem bestimmten Zeitstempel oder einer relativen Zeit anzeigen, z. B. 42 m (also 42 Minuten)
    --tail string Wie viele Protokollzeilen werden ab dem Ende des Protokolls angezeigt? Der Standardwert ist „alle“
  -t, --timestamps Zeitstempel anzeigen --until Zeichenfolge Protokolle vor einem bestimmten Zeitstempel oder einer relativen Zeit anzeigen, z. B. 42 m (also 42 Minuten)

Beispiel:

Zeigen Sie die Protokolle nach der angegebenen Zeit an und zeigen Sie nur die letzten 100 Zeilen an:

$ Docker-Protokolle -f -t --since="2018-02-08" --tail=100 CONTAINER_ID

Sehen Sie sich die Protokolle der letzten 30 Minuten an:

$ Docker-Protokolle – seit 30 Min. CONTAINER_ID

Zeigen Sie die Protokolle nach einer bestimmten Zeit an:

$ docker logs -t --since="2018-02-08T13:23:37" CONTAINER_ID

Protokolle für einen bestimmten Zeitraum anzeigen:

$ docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" CONTAINER_ID

Ergänzung: Debugging-Tipps für Docker-Container: Docker-Logs und Docker-Service-Logs

Debuggen von Containern

Viele Studierende, die mit Docker noch nicht vertraut sind, stoßen häufig auf das Problem, dass sich der Docker-Container nicht starten lässt oder sie ihn wiederholt starten, ohne zu wissen, was sie tun sollen.

Docker stellt eine Reihe einfacher Befehle zur Verfügung, die das Debuggen von Problemen im Containerbetrieb erleichtern.

Das Prinzip ist ganz einfach, d.h. man kann sich die Logs der Container-Laufzeit (bzw. Vergangenheitsform) direkt ausgeben lassen.

Normalerweise gibt es 4 Möglichkeiten:

docker run (Container auf der Konsole starten)

docker exec (an Hintergrundcontainer anhängen)

docker logs

docker service logs

Im Folgenden werden wir vorstellen

Starten Sie den Container von der Konsole aus

Debuggen und starten Sie beispielsweise den Redis-Container

docker run -it -rm redis redis-server [Redis-Startparameter ausgelassen …]

Auf diese Weise wird die Protokollausgabe des Redis-Servers direkt auf die Konsole gedruckt

Der Nachteil besteht darin, dass diese Methode nur beim Starten des Container-Debuggings verwendet wird und keine im Hintergrund laufenden oder abgelaufenen Container bedienen kann.

Docker Exec wird an den Hintergrundcontainer angehängt

Manchmal müssen Sie den Container betreten, um den Betriebsstatus des Systems zu überprüfen. Derzeit können Sie Docker Exec verwenden.

Voraussetzung für die Verwendung von Docker Exec ist, dass der Container ausgeführt wird. Wenn der Container nicht ordnungsgemäß funktioniert, kann dieser Befehl daher häufig nicht verwendet werden.

Docker-Protokolle

Tatsächlich können Sie Docker-Protokolle verwenden, um alle Protokolle des Containers abzurufen, unabhängig davon, in welchem ​​Status sich der Docker-Container befindet.

Docker-Protokolle [Containername]

Docker-Protokolle unterliegen auch Einschränkungen. Das heißt, es ist nicht möglich, Containerprotokolle abzurufen, deren Start im Docker-Schwarmmodus fehlgeschlagen ist.

Docker-Dienstprotokolle

Holen Sie sich für den Docker-Swarm-Modus den Befehl für Containerprotokolle.

Führen Sie im Allgemeinen die folgenden Befehle nacheinander aus, um den Containernamen eines Dienstes abzurufen

Docker-Dienst ls
Docker-Dienst PS [Dienstname]

Anschließend können Sie das Protokoll anhand des Containernamens abrufen

Docker-Dienstprotokolle [Containername]

Docker-Dienstprotokolle zeigen, dass das Protokoll leer ist

Damit Docker-Dienstprotokolle ordnungsgemäß funktionieren, müssen Sie einige Docker-Konfigurationen festlegen

vi /etc/docker/daemon.json

Zu dieser Datei hinzufügen:

{
  "log-driver": "JSON-Datei",
  "log-opts": {
    "Labels": "Produktionsstatus, Geo",
    "env": "Betriebssystem, Kunde"
  }
}

Starten Sie dann Docker neu

Dienst Docker Neustart

Eine ausführliche Einführung in Docker-Dienstprotokolle finden Sie in der offiziellen Dokumentation

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur.

Das könnte Sie auch interessieren:
  • Lösung für das Problem, dass der Hostname des Hosts im Docker-Container nicht abgerufen werden kann
  • Jedes Mal, wenn Docker einen Container startet, werden die IP und die Hosts mit den angegebenen Operationen
  • Schritte zum Wiederherstellen von Code aus einem Docker-Container-Image
  • Docker-Container: benutzerdefinierter Host-Netzwerkzugriffsvorgang
  • Beheben Sie das Problem, dass einige Konfigurationsdateien in /etc nach dem Neustart des Docker-Containers zurückgesetzt werden
  • Eine kurze Diskussion zum Problem des Docker-Run-Containers im erstellten Status
  • Docker-Container greift auf MySQL-Operationen des Hosts zu

<<:  Zusammenfassung der wichtigsten Wissenspunkte zur MySQL-Abfrageoptimierung

>>:  Übertragung von Routing-Parametern für die Kommunikation von React-Komponenten (react-router-dom)

Artikel empfehlen

MySQL Series II-Konfiguration für mehrere Instanzen

Tutorial-Reihe MySQL-Reihe: Grundlegende Konzepte...

Mehrere praktische Szenarien zur Implementierung der Ersetzungsfunktion in MySQL

REPLACE Syntax REPLACE(String,from_str,to_str) Da...

So öffnen Sie Port 8080 auf dem Alibaba Cloud ECS-Server

Aus Sicherheitsgründen verfügt Alibaba Cloud Serv...

Implementierung der Webpack-Codefragmentierung

Inhaltsverzeichnis Hintergrund CommonsChunkPlugin...

XHTML-Tutorial für die ersten Schritte: XHTML-Webseiten-Bildanwendung

<br />Das sinnvolle Hinzufügen von Bildern k...

Vue implementiert ein verschiebbares Baumstrukturdiagramm

Inhaltsverzeichnis Rekursive Vue-Komponente Drag-...

Installationsprozess von CentOS8 Linux 8.0.1905 (Abbildung)

Die aktuellste Version von CentOS ist CentOS 8. A...

Erläuterung des Arbeitsmechanismus von Namenode und SecondaryNameNode in Hadoop

1) Prozess 2) FSImage und Bearbeitungen Nodenode ...

Mit JS in zehn Minuten die Existenz von Elementen in einem Array bestimmen

Vorwort In der Front-End-Entwicklung müssen Sie h...

Kopieren und Einfügen ist der Feind der Verpackung

Bevor wir über OO, Entwurfsmuster und die vielen o...

Detaillierte Erklärung von Objektliteralen in JS

Inhaltsverzeichnis Vorwort 1. Setzen Sie den Prot...

Hinweise zur Zeitverwaltung des Linux-Kernel-Gerätetreibers

/****************** * Zeitverwaltung des Linux-Ke...

mysql-8.0.17-winx64 Bereitstellungsmethode

1. Laden Sie mysql-8.0.17-winx64 von der offiziel...