1. Problem Die Docker-Containerprotokolle führten dazu, dass der Speicherplatz auf der Hostfestplatte voll war. docker logs -f container_name hat viele knisternde Protokolle, die viel Platz beanspruchen. Nicht verwendete Protokolle können bereinigt werden. 2. Lösung 2.1 Docker-Container-Protokolle finden Unter Linux werden Containerprotokolle im Allgemeinen in /var/lib/docker/containers/container_id/ gespeichert. Dateien mit der Endung json.log (Geschäftsprotokolle) sind sehr groß. Das Skript docker_log_size.sh zum Überprüfen der Größe jeder Protokolldatei lautet wie folgt: #!/bin/sh echo "======== Größe der Protokolldatei von Docker-Containern =========" Protokolle = $ (find /var/lib/docker/containers/ -name *-json.log) für die Anmeldung $logs Tun ls -lh $log Erledigt # chmod +x docker_log_size.sh # ./docker_log_size.sh 2.2 Docker-Container-Protokolle bereinigen (Symptome behandeln) Wenn der Docker-Container ausgeführt wird, werden Sie nach dem Löschen des Protokolls mit rm -rf feststellen, dass der Speicherplatz über df -h nicht freigegeben wird. Der Grund hierfür liegt darin, dass in Linux- oder Unix-Systemen das Löschen von Dateien über rm -rf oder den Dateimanager dazu führt, dass die Verknüpfung dieser Dateien mit der Verzeichnisstruktur des Dateisystems aufgehoben wird. Wenn die Datei geöffnet ist (von einem Prozess verwendet wird), kann der Prozess die Datei weiterhin lesen und der Speicherplatz wird weiterhin belegt. Die richtige Vorgehensweise ist cat /dev/null > *-json.log. Natürlich können Sie es auch mit rm -rf löschen und Docker neu starten. Als nächstes stellen Sie ein Protokollbereinigungsskript clean_docker_log.sh bereit, der Inhalt ist wie folgt: #!/bin/sh echo "======== Starten Sie die sauberen Docker-Container-Protokolle =========" Protokolle = $ (find /var/lib/docker/containers/ -name *-json.log) für die Anmeldung $logs Tun echo "Protokolle bereinigen: $log" cat /dev/null > $log Erledigt echo "======== Ende der Bereinigung der Docker-Container-Protokolle =========" # chmod +x clean_docker_log.sh # ./clean_docker_log.sh Nach einer solchen Bereinigung wachsen die Containerprotokolle jedoch mit der Zeit wie Unkraut nach. 2.3 Festlegen der Protokollgröße des Docker-Containers (Grundursache)
Bei der obigen Methode wird die Protokolldatei früher oder später größer. Um das Problem grundlegend zu lösen, müssen Sie die Obergrenze der Protokollgröße des Containerdienstes begrenzen. Dies wird erreicht, indem die Option max-size des Containers docker-compose konfiguriert wird. nginx: Bild: nginx:1.12.1 Neustart: immer Protokollierung: Treiber: "JSON-Datei" Optionen: maximale Größe: „5 g“ Nach dem Neustart des Nginx-Containers ist die Größe seiner Protokolldatei auf 5 GB begrenzt, sodass Sie sich darüber keine Gedanken mehr machen müssen.
Erstellen Sie eine neue /etc/docker/daemon.json. Wenn sie bereits existiert, müssen Sie keine neue erstellen. Fügen Sie die Parameter log-dirver und log-opts wie unten gezeigt hinzu: # vim /etc/docker/daemon.json { "Registrierungsspiegel": ["http://f613ce8f.m.daocloud.io"], "log-driver": "json-Datei", "log-opts": {"max-size": "500 m", "max-file": "3"} } max-size=500m bedeutet, dass die Obergrenze einer Containerprotokollgröße 500 MB beträgt. max-file=3 bedeutet, dass ein Container drei Protokolle hat, nämlich id+.json, id+1.json und id+2.json. // Starten Sie den Docker-Daemon neu# systemctl daemon-reload # systemctl Neustart Docker Hinweis: Die eingestellte Loggröße gilt nur für neu erstellte Container. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Beispiel für die Verwendung von Store in Vue3 zum Aufzeichnen der Bildlaufposition
Wie unten dargestellt: nsenter -t 1 -m -u -n -i s...
Inhaltsverzeichnis Vorwort Sechs Funktionen von J...
Ein Textfeld mit Dropdown-Liste ermöglicht es Ben...
SQL-Paging-Abfrage:Hintergrund Im System des Unte...
Inhaltsverzeichnis Vorwort: 1. Einführung in die ...
Inhaltsverzeichnis 1. Einleitung 2. Installation ...
<br />Bei Diskussionen mit meinen Freunden h...
Umfeld Centos 6.6 MySQL 5.7 Installieren Falls da...
Beispielverwendung Code kopieren Der Code lautet w...
Was ist HTML? HTML ist eine Sprache zur Beschreib...
In diesem Artikel wird der spezifische Code von V...
Vorwort Dieser Artikel verwendet die neuen Funkti...
Vorwort Ich glaube, dass die Syntax von MySQL nic...
Bevor Sie diesen Artikel lesen, hoffe ich, dass S...
[LeetCode] 180. Aufeinanderfolgende Zahlen Schrei...