Docker-Container sind eine leichte Alternative zu virtuellen Maschinen, mit der Entwickler Anwendungen in einer Sandbox erstellen, bereitstellen und ausführen können. Sie bieten die Möglichkeit, die Anwendung und ihre Abhängigkeiten in einer einzigen Einheit zu verpacken, die auf jedem Docker-kompatiblen System bereitgestellt werden kann.
Im Laufe der Zeit sammeln sich jedoch viele ungenutzte und veraltete Container an, die wertvollen Speicherplatz und Computerressourcen beanspruchen. Um dieses Problem zu vermeiden, müssen Sie die Docker-Container regelmäßig reinigen.
In dieser detaillierten Anleitung werden verschiedene Möglichkeiten zur Reinigung von Docker-Containern erläutert. Wir zeigen Ihnen, wie Sie alle Container löschen, alle laufenden Container stoppen und nicht verwendete Images löschen können. Außerdem erfahren Sie, wie Sie Speicherplatz von unnötigen Daten befreien und die automatische Bereinigung einrichten können.
Wie kann ich den Dockerbehälter richtig reinigen?
Schritt 1: Stoppen des Containers
Bevor Sie den Behälter reinigen, müssen Sie ihn anhalten. Dazu müssen Sie den Befehl ausführen:
docker stop [containername]
Hier [containername] - dies ist der Name Ihres Containers, den Sie im Voraus erhalten müssen.
Schritt 2: Entfernen des Containers
Nach dem Anhalten des Containers können Sie mit dem Entfernen des Containers beginnen. Führen Sie dazu den folgenden Befehl aus:
docker rm [containername]
Hier [containername] - dies ist der Name Ihres Containers, den Sie bei der Erstellung angegeben haben.
Schritt 3: Löschen des Images
Nachdem Sie den Container entfernt haben, müssen Sie das zugeordnete Image löschen. Führen Sie dazu den Befehl aus:
docker rmi [abbildname]
Hier [abbildname] - dies ist der Name des Containerimages, den Sie auch beim Erstellen des Containerimages angegeben haben.
Schritt 4: Bereinigen der restlichen Ressourcen
Nachdem Sie den Container und das Image entfernt haben, müssen Sie möglicherweise einige weitere mit dem Docker verbundene Ressourcen bereinigen. Führen Sie dazu den folgenden Befehl aus:
docker system prune
Dieser Befehl löscht alle nicht verwendeten Images, Container und Netzwerke, wodurch zusätzlicher Speicherplatz frei wird.
Schritt 5: Überprüfen des Ergebnisses
Nachdem Sie alle Schritte ausgeführt haben, sollten Sie das Ergebnis überprüfen und sicherstellen, dass alle Container und Images erfolgreich gelöscht wurden. Führen Sie dazu den Befehl aus:
Dieser Befehl zeigt eine Liste aller Container (einschließlich der angehaltenen) auf Ihrem System an. Wenn die Liste leer ist, wurden alle Container erfolgreich gelöscht.
Jetzt wissen Sie, wie Sie den Docker-Container richtig reinigen und die Ressourcen Ihres Systems freigeben können. Befolgen Sie diese Anweisungen, um die Container effizient zu verwalten und auf dem neuesten Stand zu halten.
Ungenutzte Container entfernen
Sie können den Befehl docker container prune verwenden, um alle nicht verwendeten Container zu entfernen. Sie entfernt alle angehaltenen Container und gibt den von ihnen belegten Speicherplatz frei.
Wenn Sie nur angehaltene Container löschen möchten, können Sie den Befehl docker container prune -f verwenden. Mit der Option -f können Sie Container ohne Bestätigung löschen.
Wenn Sie nur nicht verwendete Images löschen möchten, können Sie den Befehl docker image prune verwenden. Dadurch werden alle Images gelöscht, aus denen keine Container erstellt wurden.
Denken Sie daran, dass das Löschen von Containern und Images möglicherweise nicht notwendig ist. Daher sollten Sie sicherstellen, dass alle erforderlichen Daten gespeichert sind, bevor Sie die Deinstallation durchführen.
Bereinigen von Containerimages
Es gibt mehrere Möglichkeiten, Containerimages zu bereinigen:
- Manuelles Löschen nicht verwendeter Images
- Verwenden des Befehls docker image prune
- Verwenden des Docker Compose-Tools zum automatischen Bereinigen
1. Manuelles Löschen nicht verwendeter Images:
Wenn Sie nicht verwendete Containerimages manuell löschen möchten, benötigen Sie eine Liste aller Images auf Ihrem Host. Sie können eine Liste der Images abrufen, indem Sie den Befehl ausführen:
docker image ls
Nachdem Sie eine Liste der Images erhalten haben, können Sie die Images löschen, die Sie nicht mehr benötigen, indem Sie den Befehl verwenden:
docker image rm
Ersetzen Sie durch die ID des Images, das Sie löschen möchten.
2. Verwenden des Befehls docker image prune :
Mit dem Befehl docker image prune können Sie nicht verwendete Containerimages automatisch löschen. Führen Sie den folgenden Befehl aus, um diesen Befehl zu verwenden:
docker image prune
Durch diesen Befehl werden alle nicht verwendeten Images auf Ihrem Host gelöscht.
3. Verwenden des Docker Compose-Tools zum automatischen Bereinigen:
Wenn Sie Docker Compose verwenden, um Ihr Projekt zu verwalten, können Sie die automatische Bereinigung von Containerimages konfigurieren. Fügen Sie Ihrer Docker-Compose-Datei den folgenden Code hinzu.yml :
version: '3'services:app:build: .volumes:- .:/appimage: myappcontainer_name: myapprestart: alwayscleanup:image: alpinevolumes:- /var/run/docker.sock:/var/run/docker.sockcommand: docker image prune -f
In diesem Beispiel haben wir einen Cleanup-Dienst hinzugefügt, der ein Alpine-Image verwendet und den Befehl docker image prune -f ausführt, um nicht verwendete Images im Container zu löschen.
Nachdem Sie diesen Code zu Ihrer Docker-compose-Datei hinzugefügt haben.yml , führen Sie den folgenden Befehl aus:
docker-compose up -d
Wenn Sie Ihr Projekt mit Docker Compose ausführen, werden die Container-Images automatisch bereinigt.
Verwenden Sie eine dieser Methoden, um Speicherplatz freizugeben und Docker zu optimieren. Durch das Bereinigen von Containerimages können Sie das System effizienter nutzen und Probleme vermeiden, die mit dem Anhäufen nicht verwendeter Images verbunden sind.
Nicht verwendete Volumes bereinigen
Neben Containern verwaltet Docker auch Volumes, die zum Speichern von Daten verwendet werden. Wenn Sie mit Containern gearbeitet haben, haben Sie möglicherweise Volumes erstellt und gelöscht. Nicht verwendete Volumes können jedoch kostbaren Speicherplatz belegen, daher ist es wichtig, sie regelmäßig zu bereinigen.
Um nicht verwendete Volumes zu bereinigen, überprüfen Sie zuerst die Liste aller Volumes mit dem Befehl:
docker volume ls
Auf diese Weise können Sie eine Liste aller verfügbaren Volumes und ihrer gemounteten Punkte anzeigen.
Sie können dann ein bestimmtes Volume mit dem Befehl löschen:
docker volume rm [name]
Hier [name] - dies ist der Name des Volumes, das Sie löschen möchten.
Beachten Sie, dass durch das Löschen eines Volumes alle damit verbundenen Daten verloren gehen, daher seien Sie beim Löschen von Volumes vorsichtig.
Sie können auch alle nicht verwendeten Volumes einmal mit dem folgenden Befehl löschen:
docker volume rm $(docker volume ls -qf "dangling=true")
Dadurch werden alle Volumes mit dem Flag "dangling" gelöscht, dh alle nicht verwendeten Volumes.
Jetzt wissen Sie, wie Sie nicht verwendete Volumes in Docker bereinigen und zusätzlichen Speicherplatz freigeben können.
Löschen inaktiver Netzwerke
Wenn Sie Container-Docker verwenden, ist es manchmal notwendig, inaktive Netzwerke zu entfernen, um Ressourcen freizugeben und mögliche Konflikte zu vermeiden.
Befolgen Sie diese Schritte, um inaktive Netzwerke zu entfernen:
- Öffnen Sie eine Eingabeaufforderung oder ein Terminal.
- Geben Sie den Befehl ein docker network prune und drücken Sie die Eingabetaste.
- Bestätigen Sie die Aktion, indem Sie "y" oder "yes" eingeben und die Eingabetaste drücken.
Nachdem Sie diese Schritte ausgeführt haben, werden alle inaktiven Netzwerke gelöscht, und Sie werden die Ressourcen für die Verwendung in anderen Containern freigeben.
Löschen von Containerprotokollen
Docker-Container-Logs können sich schnell ansammeln und viel Speicherplatz beanspruchen. Um ein Überlaufen der Festplatte zu verhindern, ist es wichtig, die Containerprotokolle regelmäßig zu löschen.
Es gibt mehrere Möglichkeiten, Containerprotokolle in Docker zu bereinigen:
- Bereinigen mit dem Befehl docker logs Sie können den Befehl docker logs verwenden, um die Protokolle eines Containers anzuzeigen und gleichzeitig zu löschen. Beispiel: der Befehl docker logs --tail=0 --size=0 [Containername] zeigt alle Logs des Containers an und löscht sie.
- Bereinigen mit einem Log-Volume Wenn ein Container ein separates Volume zum Speichern von Logs verwendet, können Sie dieses Volume einfach löschen, um die Logs zu bereinigen. Führen Sie dazu den Befehl docker volume rm aus [Name] .
- Automatisiertes Löschen von Protokollen mit dem Docker-Dienstprogramm Sie können auch die automatische Bereinigung von Containerprotokollen mit einem speziellen Docker-Dienstprogramm wie Docker Logrotate konfigurieren. Mit diesem Dienstprogramm können Sie Regeln zum Löschen von Protokollen konfigurieren und alte Containerprotokolle automatisch löschen.
Wählen Sie basierend auf Ihren Bedürfnissen und Vorlieben eine geeignete Methode aus, um die Containerprotokolle in Docker zu bereinigen. Regelmäßige Reinigung hilft Ihnen, Ihren Speicherplatz zu verwalten und eine gute Leistung Ihrer Docker-Umgebung zu erhalten.
Temporäre Docker-Dateien bereinigen
Bei Verwendung von Docker-Containern können sich temporäre Dateien ansammeln, die zusätzlichen Speicherplatz belegen. Um Speicherplatz freizugeben und das System sauber zu halten, wird empfohlen, temporäre Dateien in Andockcontainern regelmäßig zu bereinigen.
Um zu beginnen, stoppen Sie alle laufenden Docker-Container, um mögliche Probleme oder Datenverlust zu vermeiden:
docker stop $(docker ps -a -q)
Führen Sie dann den Befehl aus, um alle angehaltenen Container zu löschen:
docker rm $(docker ps -a -q)
Jetzt können Sie mit dem Löschen temporärer Dateien beginnen. Führen Sie dazu den folgenden Befehl aus:
docker system prune -a --volumes
Dieser Befehl löscht alle temporären Dateien, nicht verwendeten Images und Container. Außerdem werden alle nicht benötigten Volumes und Netzwerke gelöscht. Achten Sie darauf, etwas Wichtiges nicht zu entfernen.
Nachdem Sie alle Befehle ausgeführt haben, werden die temporären Docker-Dateien vollständig gelöscht und Sie werden zusätzlichen Speicherplatz freigeben.
Überprüfen und Löschen nicht verwendeter Images
Um die Ressourcennutzung zu optimieren und Speicherplatz freizugeben, sollten Sie nicht verwendete Images regelmäßig in Docker überprüfen und löschen.
Sie können den Befehl verwenden, um nicht verwendete Images zu überprüfen:
docker images -a
Dieser Befehl zeigt alle Abbilder an, einschließlich der nicht verwendeten. Nicht verwendete Images werden normalerweise mit " " gekennzeichnet.
Sie können den Befehl verwenden, um nicht verwendete Images zu löschen:
Geben Sie stattdessen die ID des nicht verwendeten Images an, das gelöscht werden soll.
Sie können den Befehl verwenden, um alle nicht verwendeten Images gleichzeitig zu löschen:
docker image prune
Dieser Befehl löscht automatisch alle nicht verwendeten Images und gibt Speicherplatz frei.
Denken Sie daran, nicht verwendete Images regelmäßig in Docker zu überprüfen und zu löschen, um eine optimale Ressourcennutzung zu erhalten und ein Überlaufen der Festplatte zu vermeiden.