Docker-Reinigungskiller/Docker-Overlay-Datei nimmt zu viel Speicherplatz ein

Docker-Reinigungskiller/Docker-Overlay-Datei nimmt zu viel Speicherplatz ein

[Wenn ich mir all die Migrationsdateien im Internet anschaue, habe ich den Eindruck, dass sie unzuverlässig sind und nur die Symptome behandeln, nicht aber die Grundursache (so sollte ein Programmierer der neuen Generation nicht sein)]

Nach der Überprüfung mit „du -sh*“ stellte ich fest, dass der Overlay-Ordner explodiert war.

docker system prune -a hat nur 7g Speicherplatz freigegeben, und der Ordner ist immer noch 30g groß

Die Festplattennutzung ist von 100 % auf etwa 80 % gesunken, was nicht akzeptabel ist. Nach weiteren zwei Tagen Betrieb ist die Festplatte immer noch voll!

Endlich ist der Killer da, installieren Sie Portainer

Eine Reihe von Tutorials zur Docker-Installation

Ich verwende hier dokcer-compose zum Bereitstellen, daher ist die folgende Konfiguration

 Träger:
  Bild: portainer/portainer
  Neustart: immer
  Häfen:
  - "9000:9000"
  Bände:
  – /var/run/docker.sock:/var/run/docker.sock
  – /data/docker/portainer/data:/data

Nach up -d ruft nginx den Port ab und greift darauf zu.

Entfernen Sie alle nicht verwendeten.

Nachdem ich die Festplattennutzung noch einmal überprüft habe, kann ich endlich ohne Sorgen paddeln~~~

PS: Tatsächlich hat unsere Abteilung diese Methode schon einmal verwendet, aber ... . . . . Äh, ich habe es vergessen. Äh, äh, äh. . . . Also schreib es als Lektion auf~

Zusätzliches Wissen: Centos7 konfiguriert Overlay-Speichertreiber für Docker

Prämisse:

RHEL oder CentOS verwenden den neuen Docker-Speichertreiber (Overlay oder Overlay2) und müssen die Systemkernelversion auf 3.10.0-514 oder höher aktualisieren. Die Schritte des Kämmens sind wie folgt:

Bestätigen Sie den Kernel

Version 3.10.0-514 oder höher

uname -r

3.10.0-514.++++.x86_64

Systemaktualisierung

sudo yum upgrade --assumeyes --tolerant

sudo yum update --assumeyes

Bestätigen Sie, ob der Kernel das Overlay-Modul geladen hat

grep-Overlay

Wenn der Rückgabewert leer ist, müssen Sie das Laden des Moduls konfigurieren

Overlay aktivieren

sudo tee /etc/modules-load.d/overlay.conf <<-'EOF'
Überlagerung
Ende der Laufzeit

Starten Sie das System neu

reboot

Bestätigen Sie, dass das Overlay aktiviert ist

grep-Overlay

Überlagerung

Docker-Speicherpartition vorbereiten

Es wird dringend empfohlen, eine andere Festplatte oder Partition vorzubereiten, den Parameter -n ftype=1 hinzuzufügen, um sie als xfs zu formatieren, und dann /var/lib/docker darauf zu mounten:

Gründe

Beim Formatieren des XFS-Dateisystems müssen Sie -n ftype=1 hinzufügen.

Parameter: -n erstellt das Dateisystem nicht tatsächlich, sondern zeigt nur die erstellten Informationen an;

ftype = value ermöglicht die Speicherung des Inode-Typs in der Verzeichnisstruktur, sodass readdir und getdents den Inode-Typ ermitteln können, ohne den Inode nachzuschlagen. Der Standardwert ist 0 und existiert in der Verzeichnisstruktur nicht.

Lokale Festplatte formatieren

Stellen Sie sicher, dass die lokale Festplatte richtig formatiert ist.

mkfs.xfs -f -n ftype=1 /dev/sdg5

Datenträgerinformationen bestätigen

lsblk -a -f 
NAME FSTYPE LABEL UUID MOUNTPOINT
 
├─sdg4             
├─sdg5 xfs 71165973-9e3f-4d8e-9a4e-2c00c0e70efa

Konfigurieren der Datenträger-Boot-Mount

mehr /etc/fstab

UUID=71165973-9e3f-4d8e-9a4e-2c00c0e70efa /var/lib/docker xfs-Standardwerte 0 0

Manuelles Mounten der Festplatte

einhängen -a

Informationen zur Datenträgerbereitstellung anzeigen

lsblk

├─sdg5 8:101 0 200G 0 Teil /var/lib/docker

Ändern Sie die Docker-Startdatei und legen Sie fest, dass Overlay-Speicher verwendet wird.

mehr /etc/sysconfig/docker

# /etc/sysconfig/docker
 
# Ändern Sie diese Optionen, wenn Sie die Art und Weise ändern möchten, wie der Docker-Daemon ausgeführt wird
OPTIONEN='--storage-driver=overlay --selinux-enabled --log-driver=journald --signature-verification=false' 
wenn [ -z "${DOCKER_CERT_PATH}" ]; dann
 DOCKER_CERT_PATH=/etc/docker
fi

oder

/etc/docker/daemon.json
{
 "Speichertreiber": "Overlay2",
 "Speicheroptionen": [
 „overlay2.override_kernel_check=true“
 ]
}

Start hinzufügen

systemctl daemon-reload
systemctl starte Docker
systemctl aktiviert Docker

Überprüfen der Docker-Speicherinformationen

$ Docker-Info
 
Behälter: 0
Bilder: 0
Speichertreiber: overlay2
 Unterstützendes Dateisystem: xfs
 Unterstützt d_type: true <<=== Fokus auf Native Overlay Diff: true
<Ausgabe abgeschnitten>

Wenn Sie Docker mit einem Overlay/Overlay-Treiber verwenden, der d_typ nicht unterstützt, kann es bei der Dateibearbeitung von Docker zu Fehlern kommen, z. B. das Löschen bestimmter Verzeichnisse oder Dateien, das Festlegen von Datei- oder Verzeichnisberechtigungen oder Benutzern usw. Dies sind unerwartete Fehler.

Beispielsweise können beim Erstellen von Docker Vorgänge wie das Löschen von Dateien während des Erstellungsprozesses fehlschlagen, was zu einem Abbruch des Erstellungsprozesses führt.

Der obige Artikel über Docker-Reinigungskiller/Lösung für das Problem, dass Docker-Overlay-Dateien zu viel Speicherplatz belegen, ist der gesamte Inhalt, den der Herausgeber mit Ihnen teilt. Ich hoffe, er kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Das könnte Sie auch interessieren:
  • Der Festplattenspeicherplatzverbrauch von Docker Overlay2 ist zu groß, um die Methode zu bereinigen

<<:  Express implementiert Login-Verifizierung

>>:  Zusammenfassung häufig verwendeter Anweisungen zur Änderung mehrerer Tabellen in MySQL und Oracle

Artikel empfehlen

Div adaptive Höhe füllt automatisch die verbleibende Höhe

Szenario 1: HTML: <div Klasse="äußere&quo...

Eine kurze Zusammenfassung von Vue Keep-Alive

1. Funktion Wird hauptsächlich verwendet, um den ...

Detaillierte Erläuterung des React setState-Datenaktualisierungsmechanismus

Inhaltsverzeichnis Warum setState verwenden? Verw...

MySQL verwendet Binlog-Protokolle zur Implementierung der Datenwiederherstellung

MySQL Binlog ist ein sehr wichtiges Protokoll in ...

Zeichnen Sie ein Herz mit CSS3

Ergebnisse erzielenAnforderungen/Funktionalität: ...

Vue3 (Teil 2) Integration von Ant Design Vue

Inhaltsverzeichnis 1. Integrieren Sie Ant Design ...

Beispiel für die Implementierung des TikTok-Textschütteleffekts mit CSS

In der täglichen Entwicklung streiten sich Front-...

JSON (JavaScript Object Notation) in einem Artikel verstehen

Inhaltsverzeichnis JSON wird angezeigt JSON-Struk...

Schritte zum Öffnen des MySQL-Binlogs

Binlog ist eine binäre Protokolldatei, die zum Au...

Unterschiede zwischen FLOW CHART und UI FLOW

Viele Konzepte im UI-Design mögen in der Formulie...

Beispielanalyse der MySQL-Benutzerrechteverwaltung

Dieser Artikel beschreibt das Beispiel der MySQL-...