Szenario: Nachdem Sie die Docker-Engine lange Zeit verwendet haben, werden Sie feststellen, dass der Speicherplatz immer größer wird. Jetzt müssen Sie die nicht verwendeten Daten im Zusammenhang mit Docker löschen, um Speicherplatz freizugeben. Schauen Sie sich zunächst den Docker-Systembefehl an Das Docker-System verfügt derzeit über vier Unterbefehle, nämlich: Docker-System df Docker-Systemereignisse Docker-Systeminformationen Docker-System bereinigen Einer der wichtigsten Befehle des Docker-Systems ist der Befehl „Docker System Prune“, der nicht verwendete Daten, einschließlich Bilddaten und angehaltener Container, bereinigt. Siehe Docker-Systemhilfe [root@localhost ~]# Docker-System --Hilfe Verwendung: Docker-System-Befehl Docker verwalten Optionen: --help Druckverwendung Befehle: df Zeigt die Docker-Festplattennutzung an events Erhalten Sie Echtzeitereignisse vom Server info Systemweite Informationen anzeigen prune Entfernen Sie nicht verwendete Daten Führen Sie „docker system COMMAND --help“ aus, um weitere Informationen zu einem Befehl zu erhalten. Docker-System dfBietet einen Überblick über die gesamte Docker-Festplattennutzung, einschließlich Images, Containern und (lokalen) Volumes. So können wir jetzt jederzeit überprüfen, wie viele Ressourcen Docker verwendet. [root@localhost ~]# Docker-System df TYP GESAMT AKTIV GRÖSSE WIEDERVERWENDBAR Bilder 10 6 2,652 GB 1,953 GB (73 %) Container 6 6 6,922 MB 0 B (0 %) Lokale Datenträger 0 0 0B 0B Docker-System bereinigenWenn der vorherige Befehl zeigt, dass Docker zu viel Speicherplatz beansprucht hat, beginnen wir mit der Bereinigung. Es gibt einen Befehl, der alles erledigt: [root@localhost ~]# Docker-System bereinigen ACHTUNG! Dadurch wird Folgendes entfernt: - alle angehaltenen Container # Angehaltene Container bereinigen - alle Netzwerke, die nicht von mindestens einem Container verwendet werden # Nicht verwendete Netzwerke bereinigen - alle hängenden Bilder # Abgebrochene Bilder bereinigen - der gesamte Build-Cache # Den Build-Cache bereinigen Möchten Sie wirklich fortfahren? [j/N] j Gesamter zurückgewonnener Speicherplatz: 0B Laut Warnmeldung löscht dieser Befehl alle geschlossenen Container und hängenden Bilder. Im Beispiel hat das Bild, das drei zufällige 1-GB-Dateien enthält, den Namen „occuped:“, wobei es sich um ein hängendes Bild handelt und es gelöscht wird. Gleichzeitig werden alle Zwischenbilder gelöscht. Gehen Sie noch einen Schritt weiter und verwenden Sie die Option -a, um eine gründlichere Bereinigung durchzuführen. Zu diesem Zeitpunkt werden wir schwerwiegendere WARNHINWEISE sehen: $ Docker-System beschneiden -a ACHTUNG! Dadurch wird Folgendes entfernt: - alle gestoppten Container - alle Volumes, die nicht von mindestens einem Container verwendet werden - Alle Netzwerke, die nicht von mindestens einem Container verwendet werden - alle Bilder, denen nicht mindestens ein Container zugeordnet ist Möchten Sie wirklich fortfahren? [j/N] j Gelöschte Bilder: ungetaggt: test:latest gelöscht: sha256:c515ebfa2... gelöscht: sha256:07302c011... gelöscht: sha256:37c0c6474... gelöscht: sha256:5cc2b6bc4... gelöscht: sha256:b283b9c35... gelöscht: sha256:8a8b9bd8b... unmarkiert: alpin:latest ungetaggt: alpine@sha256:58e1a1bb75db1... gelöscht: sha256:4a415e366... gelöscht: sha256:23b9c7b43... Insgesamt zurückgewonnener Speicherplatz: 2,151 GB Dieser Befehl bereinigt das gesamte System und behält nur die Images, Container, Volumes und Netzwerke bei, die tatsächlich verwendet werden. Sie müssen also besonders vorsichtig sein. Beispielsweise können wir den Befehl prune -a nicht in einer Produktionsumgebung ausführen, da manchmal einige Sicherungsimages (für Backup, Rollback usw.) benötigt werden. Wenn diese Images gelöscht werden, müssen sie beim Ausführen des Containers erneut heruntergeladen werden. An dieser Stelle werden alle Bilder gelöscht, die nicht an Container gebunden sind. Da der erste Prune-Befehl alle Container entfernt, werden alle Bilder (die an keinen Container gebunden sind) entfernt. So bereinigen Sie None-Objekte Docker verfolgt einen konservativen Ansatz zum Bereinigen nicht verwendeter Objekte (oft als „Garbage Collection“ bezeichnet), wie etwa Images, Container, Volumes und Netzwerke: Spiegel trimmen Bereinigen Sie das Nicht-Bild (hängendes Bild). root@instance-o70no2nw:~# Docker-Image bereinigen ACHTUNG! Dadurch werden alle hängenden Bilder entfernt. Möchten Sie wirklich fortfahren? [j/N] j Gesamter zurückgewonnener Speicherplatz: 0B Bereinigen Sie Bilder, die nicht von Containern verwendet werden Befehl: Standardmäßig werden Sie aufgefordert, fortzufahren. Um die Eingabeaufforderung zu umgehen, verwenden Sie das Flag -f oder --force. $ Docker-Image prune -a --filter "bis = 24h" SchnittbehälterDas Stoppen eines Containers führt nicht automatisch zum Löschen des Containers, es sei denn, beim Starten des Containers wird das Flag --rm angegeben. Verwenden Sie den Befehl docker ps -a, um alle Container auf dem Docker-Host anzuzeigen, einschließlich angehaltener Container. Sie werden überrascht sein, wie viele Container es gibt, insbesondere in Entwicklungsumgebungen. Die beschreibbare Ebene eines angehaltenen Containers belegt weiterhin Speicherplatz. Um diese zu bereinigen, verwenden Sie den Befehl „Docker Container Prune“: $ Docker-Container beschneiden ACHTUNG! Dadurch werden alle gestoppten Container entfernt. Möchten Sie wirklich fortfahren? [j/N] j Standardmäßig werden Sie aufgefordert, fortzufahren. Um die Eingabeaufforderung zu umgehen, verwenden Sie das Flag -f oder --force. Standardmäßig werden alle gestoppten Container gelöscht. Sie können das Flag --filter verwenden, um den Umfang einzuschränken. Beispielsweise löscht der folgende Befehl nur gestoppte Container, die vor mehr als 24 Stunden erstellt wurden: BesäumrollenVolumes können von einem oder mehreren Containern verwendet werden und belegen Speicherplatz auf dem Docker-Host. Volumes werden niemals automatisch gelöscht, da dadurch Daten zerstört würden. $ Docker-Volume beschneiden ACHTUNG! Dadurch werden alle Volumes entfernt, die nicht von mindestens einem Container verwendet werden. Möchten Sie wirklich fortfahren? [j/N] j Beschneiden des NetzwerksDocker-Netzwerke benötigen nicht viel Speicherplatz, erstellen aber Iptables-Regeln, überbrücken Netzwerkgeräte und Routing-Tabelleneinträge. Um diese zu bereinigen, können Sie Docker Network Prune verwenden, um Netzwerke zu bereinigen, die nicht von Containern verwendet werden. $ Docker-Netzwerk beschneiden Alles zuschneidenMit dem Befehl „Docker System Prune“ können Sie Bilder, Container und Netzwerke schnell bereinigen. In Docker 17.06.0 und früheren Versionen ist das Beschneiden von Volumes problemlos möglich. In Docker 17.06.1 und höher müssen Sie zum Beschneiden von Volumes im Docker-System-Prune-Befehl explizit das Flag --volumes angeben. $ Docker-System beschneiden ACHTUNG! Dadurch wird Folgendes entfernt: - alle gestoppten Container - Alle Netzwerke, die nicht von mindestens einem Container verwendet werden - alle hängenden Bilder -alle Build-Cache Möchten Sie wirklich fortfahren? [j/N] j Wenn Sie Docker 17.06.1 oder höher verwenden und auch Volumes bereinigen möchten, verwenden Sie das Flag --volumes. $ Docker-System beschneiden --Volumes ACHTUNG! Dadurch wird Folgendes entfernt: - alle gestoppten Container - Alle Netzwerke, die nicht von mindestens einem Container verwendet werden - alle Volumes, die nicht von mindestens einem Container verwendet werden - alle hängenden Bilder -alle Build-Cache Möchten Sie wirklich fortfahren? [j/N] j Normalerweise können wir die geplante Aufgabe löschen In meinem Szenario beispielsweise nimmt das Image viel Speicherplatz ein, daher plane ich eine Aufgabe zum Löschen von Images um 1 Uhr morgens jeden Tag. Dabei werden alle Images gelöscht, die länger als 72 Stunden nicht verwendet wurden: [root@Entwicklungsserver]# crontab -e 0 1 * * * Docker-Image bereinigen -a --force --filter "bis=72h" Docker-Systeminformationen (Docker-Informationen) Ich glaube, jeder kennt die Abkürzung dieses Befehls Docker Info [root@localhost ~]# Docker-Systeminformationen Behälter: 6 Laufen: 6 Pausiert: 0 Angehalten: 0 Bilder: 49 Serverversion: 17.06.2-ce Speichertreiber: Overlay Unterstützendes Dateisystem: xfs Unterstützt d_type: true Protokollierungstreiber: JSON-Datei Cgroup-Treiber: cgroupfs Plugins: Lautstärke: lokal Netzwerk: Bridge-Host Macvlan Null-Overlay Protokoll: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog Schwarm: inaktiv Laufzeiten: runc Standardlaufzeit: runc Binärdatei initialisieren: docker-init containerd-Version: 6e23458c129b551d5c9871e5174f6b1b7f6d1170 Runc-Version: 810190ceaa507aa2727d7ae6f4790c76ec150bd2 Init-Version: 949e6fa Sicherheitsoptionen: sicherheitskomp Profil: Standard Kernel-Version: 3.10.0-514.26.2.el7.x86_64 Betriebssystem: CentOS Linux 7 (Core) Betriebssystemtyp: Linux Architektur: x86_64 CPUs: 24 Gesamtspeicher: 31,21 GiB Name: localhost.localdomain ID: YTL2:6RWX:IZK6:X4XC:XKMO:WVXD:LXPR:E5GN:GEJB:WIUX:L5YH:PDFB Docker-Stammverzeichnis: /var/lib/docker Debug-Modus (Client): false Debug-Modus (Server): false Registrierung: https://index.docker.io/v1/ Experimentell: falsch Unsichere Register: 127.0.0.0/8 Registrierungsspiegel: http://9zkjjecg.mirror.aliyuncs.com/ https://docker.mirrors.ustc.edu.cn/ Live-Wiederherstellung aktiviert: false Detaillierte Erklärung siehe: Docker-System - ein neuer Befehlssatz Docker bereinigt kein Image mit dem Prune-Befehl Dies ist das Ende dieses Artikels über die Verwendung des Docker-Prune-Befehls zum Bereinigen selten verwendeter Daten. Weitere Informationen zur Verwendung des Docker-Prune-Befehls zum Bereinigen selten verwendeter Daten 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:
|
<<: Einfaches Verständnis und Beispiele für MySQL Index Pushdown (ICP)
Inhaltsverzeichnis Cache Klassifizierung des Cach...
Dieser Artikel veranschaulicht anhand eines Beisp...
Laden Sie zuerst JDK herunter. Hier verwenden wir...
Wie oben gezeigt ist die Navigation oben fixiert ...
<meta http-equiv="x-ua-kompatibel" co...
SQL-Anweisung DROP-TRIGGER WENN EXISTIERT sys_men...
Betriebssystem: Win7 64-Bit Ultimate Edition Komp...
1. Einrichten des virtuellen Nginx-Hosts Mit virt...
In diesem Artikel wird der spezifische Code zum Z...
Einführung in vi/vim Beide sind Multimode-Editore...
In diesem Artikel wird beschrieben, wie Sie eine ...
filter werden im Allgemeinen verwendet, um bestim...
Wie können Sie also nach der Registrierung eines ...
Hier sind die Arten von Daten, die überprüft werd...
RDF und OWL sind zwei wichtige semantische Webtec...