Vorwort:
Freunde, die Docker häufig verwenden, wissen, dass Docker sehr schnell Ressourcen belegt. Am offensichtlichsten und am einfachsten zu erkennen ist die Belegung von Speicherplatz. Wie bereinigen wir also die von Docker belegten Systemressourcen?
(Lernvideo-Sharing: Einführung in die Programmierung)
Die Methode ist wie folgt:
Überprüfen Sie die von Docker belegten Ressourcen
Bevor wir Ressourcen bereinigen, müssen wir herausfinden, welche Systemressourcen von Docker belegt sind. Dies erfordert eine Kombination verschiedener Befehle.
Docker-Container ls: Standardmäßig werden nur laufende Container aufgelistet. Die Option -a listet alle Container auf, einschließlich der gestoppten.
docker image ls: Bildinformationen auflisten Die Option -a listet Zwischenbilder auf (das sind die Ebenen, von denen andere Bilder abhängen).
docker volume ls: Datenvolumes auflisten.
docker network ls: Netzwerke auflisten.
Docker-Info: Zeigt Informationen auf Systemebene an, z. B. die Anzahl der Container und Bilder usw.
Nachdem Sie mit diesen Befehlen die von Docker verwendeten Ressourcen überprüft haben, haben Sie sich meiner Meinung nach entschieden, einige von Docker belegte Ressourcen zu bereinigen! Beginnen wir mit den Ressourcen, die nicht genutzt werden.
Löschen Sie nur diese ungenutzten Ressourcen.
Docker bietet einen praktischen Docker-System-Prune-Befehl, um gestoppte Container, baumelnde Bilder, Netzwerke, auf die Container nicht verweisen, und Caches während des Erstellungsprozesses zu löschen:
$ docker system prune
Aus Sicherheitsgründen dieser Befehl löscht standardmäßig keine Datenvolumes, auf die kein Container verweist. Wenn Sie diese Datenvolumes gleichzeitig löschen müssen, müssen Sie den Parameter --volumns explizit angeben. Beispielsweise möchten Sie möglicherweise den folgenden Befehl ausführen:
$ docker system prune --all --force --volumes
Diesmal wird nicht nur das Datenvolumen gelöscht, es findet auch nicht einmal ein Bestätigungsprozess statt! Beachten Sie, dass durch die Verwendung des Parameters --all alle nicht referenzierten Bilder und nicht nur freie Bilder gelöscht werden.
Hier muss erklärt werden, was baumelnde Bilder sind. Tatsächlich können sie einfach als Bilder verstanden werden, auf die kein Bild verweist. Nachdem Sie beispielsweise das Bild neu erstellt haben, werden die zuvor erstellten Bildebenen, auf die nicht mehr verwiesen wird, zu freien Bildern:
Nachdem das lokale Bild aktualisiert wurde, wird etwas Ähnliches wie das rote Kästchen im Bild angezeigt
Diese Spiegel werden als Zwischenspiegel (d. h. andere) bezeichnet Die Ebene, von der das Bild abhängt).
Wir können Prune auch unter verschiedenen Unterbefehlen ausführen, sodass bestimmte Arten von Ressourcen gelöscht werden:
docker container prune # 删除所有退出状态的容器 docker volume prune # 删除未被使用的数据卷 docker image prune # 删除 dangling 或所有未被使用的镜像
Lassen Sie Docker während der Installation in den Status zurückkehren.
Der „Status während der Installation“ bezieht sich hier auf die Ressourcenbelegung und nicht auf die Docker-bezogene Konfiguration . Dies ist auch ein relativ häufiger Anwendungsfall. Beispielsweise muss der Autor eine Produktionsumgebung an einem bestimmten Tag automatisch in einer sauberen Docker-Umgebung wiederherstellen (unter Verwendung der Sicherungsdaten der Produktionsumgebung), um Fehler zu untersuchen. Werfen wir einen Blick darauf, was getan werden muss?
Erinnern Sie sich an den Befehl docker system prune --all --force --volumns, den wir zuvor eingeführt haben. Wenn alle Container im System vor der Ausführung dieses Befehls gestoppt wurden, entfernt dieser Befehl alle Ressourcen! Okay, jetzt wollen wir herausfinden, wie wir alle Container im System stoppen können.
Der Docker-Container-Stoppbefehl kann einen oder mehrere Container stoppen. Wir müssen nur alle laufenden Container im System auflisten. Da es Docker nichts ausmacht, wenn wir einen gestoppten Container erneut stoppen, lassen Sie uns einfach und unhöflich sein und alle Container (einschließlich der gestoppten) direkt auflisten!
$ docker container ls -a -q
-a zeigt alle Container an, -q zeigt nur numerische Container-IDs an.
Verwenden Sie dann das Ergebnis der Ausführung dieses Befehls als Parameter des Docker-Container-Stoppbefehls:
$ docker container stop $(docker container ls -a -q)
Der vollständige Befehl zum Wiederherstellen der Docker-Umgebung lautet wie folgt:
$ docker container stop $(docker container ls -a -q) && docker system prune --all --force --volumns
Ähnlich wie beim vorherigen Prune-Befehl können Sie auch a vollständig löschen Bestimmter Ressourcentyp:
Container löschen: Docker Container rm $(docker Container ls -a -q)
Image löschen: Docker Image rm $(Docker Image ls -a -q)
Datenvolumen löschen: Docker Volume rm $(docker volume ls -q)
Netzwerk löschen: docker network rm $(docker network ls -q)
Shell-Alias erstellen
Die oben genannten Befehle können die Aufgabe erledigen, sind aber sehr umständlich. Wir können die Ausführung dieser Befehle über die Shell vereinfachen Alias-Funktion.
alias docker-clean-unused='docker system prune --all --force --volumes'alias docker-clean-all='docker stop $(docker container ls -a -q) && docker system prune --all --force --volumes'
把上面的命令写入到用户的 ~/.bashrc 文件中就可以了!
执行一次清理任务:
总结
经常清理系统资源不仅能够让系统运行的更流畅,也利于我们把精力集中在相关的重点资源上面。所以建议大家能够使用相关的资源清理命令,让 docker 保持清爽和高效。
相关推荐:docker入门教程
Das obige ist der detaillierte Inhalt vonSo bereinigen Sie die von Docker belegten Ressourcen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!