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
HTML5 fügt ein natives Platzhalterattribut für di...
Nach der Eingabe von yum in Linux erscheint die E...
Inhaltsverzeichnis Vorwort Funktionale React-Komp...
Kreuzungsauswahl Der Schnittpunktselektor besteht...
Problembeschreibung Ich habe drei virtuelle Masch...
Hintergrund PNG-Bilder benötigen mehr Speicherpla...
Inhaltsverzeichnis 1. Vorbereitung 2. Definieren ...
Heute bin ich auf eine sehr seltsame Situation ge...
ARGB ist ein Farbmodus, also der RGB-Farbmodus mi...
Zunächst: Was ist ein Box-Collapse? Elemente, die...
Überprüfen Sie die Transaktionsisolationsebene In...
Im Vergleich zu FTP bietet der SSH-basierte SFTP-...
Einführung in vi/vim Beide sind Multimode-Editore...
Umgebungskonfiguration 1: Installieren Sie MySQL ...
Vorwort Da die wichtigste Datenstruktur im MySQL-...