Docker ist eine sehr beliebte Open-Source-Containerisierungsplattform, die eine effizientere, zuverlässigere und sicherere Lösung für die Anwendungsbereitstellung und -verwaltung bietet. Wenn wir Docker jedoch für die Bereitstellung sowie den Betrieb und die Wartung verwenden, müssen wir häufig die Protokolldateien während des laufenden Prozesses des Containers abfragen, um den Betriebsstatus des Systems, die Fehlerbehebung, das Debuggen von Betrieb und Wartung usw. besser zu verstehen. Wo werden also die Protokolldateien in Docker gespeichert? In diesem Artikel erhalten Sie eine detaillierte Einführung in die Docker-Methode zum Anzeigen von Protokolldateien und die damit verbundenen Vorsichtsmaßnahmen.
1. Der Standardspeicherort der Docker-Protokolldateien
In Docker generiert jeder Container entsprechende Protokolldateien. Diese Protokolldateien werden standardmäßig im Dateisystem des Containers gespeichert. Insbesondere leitet Docker die Standardausgabe (stdout) und den Standardfehler (stderr) des Containers standardmäßig in die Standardausgabe- und Standardfehlerdateien des Containers um. Diese Protokolldateien befinden sich normalerweise im folgenden Verzeichnis:
/var/lib/docker/containers/$CONTAINER_ID/$CONTAINER_ID-json.log
wobei $CONTAINER_ID die eindeutige Kennung des Containers darstellt.
Für die Speicherung von Docker-Protokollen gibt es folgende wichtige Punkte:
2. Verwenden Sie Docker CLI, um Container-Protokolldateien anzuzeigen.
Bei der Verwendung von Docker für die Containerverwaltung können wir das Docker-CLI-Befehlszeilentool verwenden, um Container-Protokolldateien anzuzeigen. Im Folgenden stellen wir einige grundlegende Docker-CLI-Befehle vor, um die Funktion zum Anzeigen von Containerprotokollen zu implementieren.
Mit diesem Befehl werden alle Protokollinformationen des angegebenen Containers gedruckt. Darunter können die OPTIONEN-Optionen sein:
-a, --all: Protokollinformationen aller Container anzeigen
-t, --timestamps: Zeitstempel anzeigen
-f, --follow: Protokollinformationen ausgeben Das heißt, das Anzeigeprotokoll wird kontinuierlich aktualisiert
--tail=: Geben Sie die angegebene Anzahl von Protokollzeilen ab dem Ende der Protokolldatei aus. Der Standardwert ist alle Protokolle ($ docker logs - tail all)
--since=: Gibt die nach der angegebenen Zeit aufgezeichneten Protokolle aus, z. B. „01.01.2019“ oder Zeitstempel
--until=: Gibt die vor der angegebenen Zeit aufgezeichneten Protokolle aus
Das Spezifische Die Verwendung ist wie folgt:
$ Docker-Protokolle CONTAINER_ID
Dieser Befehl zeigt alle Protokollinformationen des angegebenen Containers an, wobei CONTAINER_ID die eindeutige Kennung des Containers ist. Wenn Sie die letzten N Zeilen der Protokollinformationen des Containers anzeigen möchten, können Sie den folgenden Befehl verwenden:
$ docker logs --tail N CONTAINER_ID
Wenn wir die Protokollausgabe eines Containers in Echtzeit überwachen müssen Wir können jederzeit die Option -f hinzufügen:
$ docker logs -f CONTAINER_ID
Dieser Befehl wird verwendet, um detaillierte Informationen zum angegebenen Container zu erhalten, einschließlich des Protokolldateipfads des Containers , Betriebsstatus, IP-Adresse, Portzuordnung und andere verwandte Informationen. Mit diesem Befehl können wir den Standardspeicherpfad der Protokolldatei des Containers abrufen, wie unten gezeigt:
$ docker inspect --format='{{.LogPath}}' CONTAINER_ID
Zusätzlich zum Anzeigen des Containerprotokolldateipfads Mit diesem Befehl können Sie auch andere verwandte Informationen anzeigen. Die spezifische Verwendung ist wie folgt:
$ docker inspect CONTAINER_ID
3. Verwenden Sie Tools von Drittanbietern, um Docker-Protokolle anzuzeigen.
Zusätzlich zum Docker-CLI-Tool können Sie dies auch tun Verwenden Sie Tools von Drittanbietern, um Docker-Protokolle bequemer anzuzeigen. Hier stellen wir zwei beliebte Docker-Protokollanzeigetools vor:
Docker Compose ist ein von Docker offiziell bereitgestelltes Container-Orchestrierungstool. Es bietet eine konfigurierbare Datei docker-compose.yml zum Definieren von Multi-Container-Anwendungen Operationsmethoden. Die Verwendung von Docker Compose für die Bereitstellung erleichtert das gleichzeitige Starten mehrerer Container und das gleichzeitige Sammeln und Verwalten von Protokollen.
Beim Bereitstellen einer Anwendung mit Docker Compose können Sie Containerprotokolle über den Befehl docker-compose logs anzeigen. Die spezifische Verwendung ist wie folgt:
$ docker-compose logs [SERVICES...]
wobei SERVICES der angegebene Dienstname ist. Standardmäßig werden die Protokolle aller Dienste angezeigt.
ELK bezieht sich auf die Kombination der drei Open-Source-Software Elasticsearch + Logstash + Kibana, die zusammenarbeiten können, um Protokollerfassung, -analyse und -visualisierung zu erreichen. Die Protokolldaten in Docker können über Logstash gesammelt werden. Anschließend können die Protokolldaten zur Indizierung und zum Abruf an Elasticsearch übertragen werden. Schließlich können die Daten über die Kibana-Schnittstelle visuell angezeigt werden.
Die Verwendung von ELK Stack für die Docker-Protokollerfassung und -Visualisierung erfordert die folgenden Schritte:
(1) Docker installieren
(2) Docker Compose installieren
(3) Laden Sie die ELK Stack-Imagedatei herunter: docker pull sebp/elk
(4) Verwenden Sie die Datei docker-compose.yml, um den ELK-Stack-Dienst zu starten:
version: '3.7'
services:
elasticsearch:
image: sebp/elk ports: - "9200:9200" volumes: - ./elasticsearch.yml:/etc/elasticsearch/elasticsearch.yml
kibana:
image: sebp/elk ports: - "5601:5601" links: - elasticsearch
logstash:
image: sebp/elk volumes: - ./logstash:/etc/logstash/conf.d links: - elasticsearch
(5) Im Logstash-Konfigurationsdatei Geben Sie den Docker-Protokollpfad an:
input {
file {
path => ["/var/lib/docker/containers/*/*.log"] type => "docker" codec => "json"
}
}
filter {
if [type] == "docker" {
}
}
output {
elasticsearch {
hosts => "elasticsearch:9200" manage_template => false index => "docker-%{+YYYY.MM.dd}"
}
}
(6) Starten Sie den Logstash-Dienst neu und suchen Sie dann über die Kibana-Schnittstelle nach Docker-Protokolldateien und zeigen Sie diese an.
Zusammenfassend beschreibt dieser Artikel die Methode zum Anzeigen von Protokolldateien in Docker, einschließlich Docker-CLI-Befehlen und Tools von Drittanbietern wie Docker Compose und ELK Stack. Mit Hilfe dieser Tools können wir die Protokollinformationen des Docker-Containers einfacher überwachen und debuggen, um den normalen Betrieb der Anwendung sicherzustellen.
Das obige ist der detaillierte Inhalt vonDocker prüft, wo sich die Protokolldatei befindet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!