Lösung für das Problem des unzureichenden Speicherressourcenpools des Docker-Servers

Lösung für das Problem des unzureichenden Speicherressourcenpools des Docker-Servers

Systemumgebung:

  • Docker-Version: 19.03.13
  • Betriebssystemversion: CentOS 7.8

1. Problembeschreibung

Als kürzlich der Docker-Befehl „run“ zum Starten des Images ausgeführt wurde, konnte der Docker-Befehl „start image“ nicht normal ausgeführt werden und die folgende Fehlermeldung wurde angezeigt:

Fehler: Fehlerantwort vom Daemon: devmapper: Thin Pool hat 163051 freie Datenblöcke, was weniger ist als die mindestens erforderlichen 163840 freien Datenblöcke. Schaffen Sie mehr freien Speicherplatz im Thin Pool oder verwenden Sie die Option dm.min_free_space, um das Verhalten zu ändern.

2. Problemanalyse

Laut Fehlermeldung liegt das Problem darin, dass der Docker Thin Pool nicht mehr genügend Speicherplatz hat. Sie müssen mehr freien Speicherplatz für den Pool schaffen oder die Option dm.min_free_space verwenden, um die Größe des freien Speicherplatzes des Pools zu ändern.

Mit dem folgenden Befehl können wir die Docker-Informationen auf dem Server anzeigen und die Ressourcennutzung beobachten:

$ Docker-Info

Der angezeigte Inhalt ist wie folgt:

...
Datenspeicherplatz gesamt: 507,4 GB
Verfügbarer Datenspeicherplatz: 100,67 GB
Verwendeter Metadatenspeicherplatz: 100,4 MB
Metadatenspeicherplatz gesamt: 20,147 GB
Verfügbarer Metadatenspeicherplatz: 20,047 GB
Minimaler freier Speicherplatz im Thin Pool: 100,74 GB
Aufgeschobene Entfernung aktiviert: true
Verzögerte Löschung aktiviert: true
Anzahl der verzögert gelöschten Geräte: 0
...

Aus den obigen Informationen können wir ersehen, dass der minimale freie Speicherplatz des Thin Pools 100,74 GB und der verfügbare Datenspeicherplatz 100,67 beträgt. Dies bedeutet, dass der verfügbare Datenspeicherplatz geringer ist als der vom Thin Pool benötigte Mindestspeicherplatz, was dazu führt, dass der Spiegel nicht normal gestartet werden kann.

3. Problemlösung

1. Überprüfen Sie die Docker-Festplattennutzung

Mit dem folgenden Befehl können wir die Festplattennutzung von Docker anzeigen:

$ Docker-System df

TYP GESAMT AKTIV GRÖSSE WIEDERVERWENDBAR
Bilder 500 12 38,31 GB 34,5 GB (90 %)
Container 64 21 157 MB 4,109 MB (2 %)
Lokale Datenträger 37 18 0B 0B
Cache erstellen 0 0  

Insgesamt sind folgende Informationen aufgeführt:

  • TYP: Ressourcentyp;
  • TOTAL: Gesamtzahl der Ressourcen;
  • AKTIV: Die Anzahl der Ressourcen im aktiven Zustand;
  • GRÖSSE: die Größe des von der Ressource genutzten Speicherplatzes;
  • WIEDERHERSTELLBAR: die Größe der wiederherstellbaren Ressourcen;

Die Komponenten sind:

  • Bilder: die Menge an Speicherplatz, die das Bild belegt;
  • Container: Die Menge an Speicherplatz, die der gestartete Container belegt
  • Lokale Volumes: Der von den lokal gemounteten Volumes verwendete Speicherplatz;
  • Build-Cache: Der vom Build-Cache belegte Speicherplatz;

Wenn Sie die Systemnutzung im Detail anzeigen möchten, können Sie den Befehl -v verwenden, um die Speichernutzungsdetails jeder Ressource anzuzeigen.

2. Bereinigungsbefehle für wiederherstellbare Speicherressourcen ausführen

Docker bietet eine Funktion zum Recycling von Speicherressourcen. Der Befehl lautet wie folgt:

Einzelheiten zum Bereinigungsbefehl finden Sie in der offiziellen Docker-Dokumentation: docker system prune.

$ Docker-System beschneiden

Dieser Befehl bereinigt alle ungenutzten Container, Netzwerke, Images (hängende und nicht referenzierte) und Volumes (optional). Warten Sie nach der Ausführung dieses Befehls eine Weile, und nachdem genügend Ressourcen wiederhergestellt wurden, wird das Docker-Image wieder in den Normalzustand zurückversetzt.

Zusammenfassen

Dies ist das Ende dieses Artikels zur Lösung des Problems des unzureichenden Speicherressourcenpools auf dem Docker-Server. Weitere Informationen zur Lösung des Problems des unzureichenden Speicherressourcenpools auf dem Docker-Server finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung zum Ändern vorhandener Images durch Docker (Commit)
  • So zeigen Sie Dateien im Docker-Image an
  • Docker Ändern des Docker-Speicherorts Ändern der Größenbeschränkung für Container-Images

<<:  Eine kurze Analyse der MySQL-Kardinalitätsstatistiken

>>:  Detaillierte Erklärung der HTML-Formularelemente (Teil 1)

Artikel empfehlen

Detailliertes Tutorial zum Bereitstellen von Springboot oder Nginx mit Kubernetes

1 Einleitung Nachdem „Maven Springboot mit einem ...

Detaillierte Analyse des temporären JDBC- und MySQL-Tablespace

Hintergrund Temporäre Tablespaces werden verwende...

Detaillierte Analyse der MySQL MDL-Metadatensperre

Vorwort: Wenn Sie eine SQL-Anweisung in MySQL aus...

Grundlegende Ideen und Codes zur Implementierung von Videoplayern in Browsern

Inhaltsverzeichnis Vorwort Zusammenfassung der Au...

Beispiel für die Erschöpfung der MySQL-Auto-Increment-ID

Anzeigedefinitions-ID Wenn die in der Tabelle def...

Detaillierte Erläuterung des Excel-Parsings und -Exports basierend auf Vue

Inhaltsverzeichnis Vorwort Grundlegende Einführun...

Detaillierte Erläuterung des primitiven Datentyps Symbol in JavaScript

Inhaltsverzeichnis Einführung Beschreibung Namens...

Zusammenfassung der vier Möglichkeiten zur Einführung von CSS (Sharing)

1. Inline-Referenz: Wird direkt auf dem Etikett v...

Vollständiges Installationstutorial zum Ubuntu 16.04-Image unter VMware

In diesem Artikel finden Sie das Installations-Tu...

Detaillierte Erklärung der 10 häufigsten HTTP-Statuscodes

Der HTTP-Statuscode ist ein dreistelliger Code, d...

Linux Redis-Sentinel-Konfigurationsdetails

herunterladen Download-Adresse: https://redis.io/...

Verwenden des JS-Timers zum Verschieben von Elementen

Verwenden Sie einen JS-Timer, um ein Element zu e...

js realisiert das dynamische Laden von Daten durch Wasserfallfluss

In diesem Artikel erfahren Sie den spezifischen C...