Docker und WSL: warum C: nach der Bereinigung voll bleibt
Docker meldet nach einer Bereinigung eine große Verringerung, aber C: gewinnt denselben Platz nicht sofort. Stellen Sie fest, welche Schicht gemessen wird. Docker-Ressourcen leben in ihrer Umgebung. Ein Linux-Dateisystem kann in einem virtuellen Datenträger leben. Windows sieht diesen Datenträger als Datei. Platz, der in der Umgebung wiederverwendbar ist, unterscheidet sich von Kapazität, die auf dem Host frei wird.
Zuerst die Umgebung erkennen
Sehen Sie den aktuellen Docker-Kontext und die Speicherinventur an. Diese Befehle lesen Informationen, ohne Ressourcen zu löschen.
docker context show
docker system df -v
docker ps -a
docker volume ls
wsl --list --verbose
Eine entfernte Docker-Verbindung meldet entfernte Ressourcen, nicht die lokale Nutzung von C:. Prüfen Sie auch, ob DOCKER_HOST oder DOCKER_CONTEXT gesetzt ist. Umgebungsvariablen können das Verbindungsziel überschreiben, wie die Kontextdokumentation beschreibt. Die WSL-Liste nennt lokale Distributionen und Versionen. Dockers Dokumentation zum WSL-Backend erklärt, dass die Datenanordnung von der Installationsgeschichte abhängt. Gehen Sie nicht davon aus, dass jeder PC dieselbe Docker-Datenverteilung hat.
Geteilte Image-Schichten ändern die Rechnung
Dockers Referenz zur Datenträgernutzung trennt geteilte und eindeutige Image-Größen. Images können Schichten wiederverwenden, deshalb muss das Entfernen eines Images nicht seine angezeigte Summe freigeben. Wiedergewinnbar beschreibt Kandidaten unter den aktuellen Referenzbeziehungen, keine Garantie, dass ihr Inhalt unerwünscht ist.
| Ressource | Typischer Inhalt | Vor dem Entfernen prüfen |
|---|---|---|
| Images | Laufzeit- und Anwendungsschichten | Lassen sie sich ziehen oder neu bauen, und nutzen andere Container sie? |
| Container | Instanzen und beschreibbare Schichten | Hält ein gestoppter Container nicht exportierten Inhalt? |
| Build-Cache | Wiederverwendbare Buildergebnisse | Kann der nächste Build herunterladen und neu berechnen, was er braucht? |
| Volumes | Dauerhafte Datenbanken oder hochgeladene Dateien | Welches Projekt gehört ihnen, und ist die Wiederherstellung geprüft? |
In einem gedachten Beispiel teilen sich zwei 2-GB-Images 1,5 GB. Eines zu entfernen bedeutet keinen Gewinn von 2 GB. Ein Volume ohne aktuelle Containerreferenz kann trotzdem die Datenbank enthalten, die Sie gerade gestoppt haben.
Den Build-Cache treffen, wenn das das Problem ist
Prüfen Sie, dass Quelle, Abhängigkeitsquellen und Build-Konfiguration verfügbar bleiben. Akzeptieren Sie, die zwischengespeicherten Ergebnisse neu zu bauen, zielt Dockers Befehl builder prune auf den Build-Cache. Der folgende Befehl löscht geeigneten Cache: lesen Sie die Abfrage, bevor Sie zustimmen, und lassen Sie die interaktive Bestätigung an.
docker builder prune
Sein Umfang ist enger als docker system prune, das auch gestoppte Container, ausgewählte Images und Netzwerke trifft. Weitere Optionen von system prune erweitern das Entfernen. Meiden Sie einen universellen Befehl für jedes Projekt. Bei mehreren Buildern erkennen Sie den ausgewählten. Eine Umgebung zu bereinigen beweist nicht, dass die anderen behandelt wurden.
Dauerhafte Daten getrennt sichern
Exportieren Sie Datenbanken mit ihren eigenen Werkzeugen und prüfen Sie die Wiederherstellung in einer isolierten Umgebung. Dockers Sicherungsanleitung trennt Image- und Volumedaten. Ein Image zu speichern oder zu committen schließt Dateien in angehängten Volumes nicht ein. Eine Compose-Datei beschreibt Konfiguration, sie hält den Datenbankinhalt nicht.
Für eine vollständige Sicherung des virtuellen Datenträgers von Docker Desktop folgen Sie dem dokumentierten Herunterfahren, erkennen Sie Backend und konfigurierten Datenort und kopieren Sie dann die richtige Datei. Eine sich ändernde VHDX ist keine stabile Sicherung. Sichern Sie persönliche WSL-Distributionen getrennt nach der WSL-Exportanleitung. Eine Distribution abzumelden entfernt ihre Daten. Das ist kein routinemäßiger Schritt zum Platzschaffen.
Die Linux- und die Windows-Schicht vergleichen
In Ihrer eigenen Distribution meldet df -h / die Nutzung des Root-Dateisystems, während du -h --max-depth=1 /home Wachstum im Benutzerverzeichnis finden hilft. Der zweite Befehl ist keine Gesamtsumme des Systems, und Rechte sowie andere Verzeichnisse begrenzen seine Abdeckung. Beginnen Sie mit einem bekannten großen Verzeichnis, statt jedes eingehängte Laufwerk zu durchlaufen.
Microsofts WSL-Speicheranleitung erklärt dynamisches VHD-Wachstum. Die Kapazitätsgrenze von Linux ist nicht die zugewiesene Nutzung von Windows. Löschen kann intern wiederverwendbaren Platz erhöhen, ohne die äußere Datei sofort zu verkleinern. Für die Rückgewinnung auf dem Host prüfen Sie aktuelle WSL- und Docker-Versionen und unterstützte Verfahren. Vermeiden Sie, virtuelle Datenträger unter AppData zu löschen oder zu verschieben, und verwechseln Sie das Erhöhen einer Kapazitätsgrenze nicht mit dem Freigeben von C:. Um die Hostdatei zurückzugewinnen, schaffen Sie zuerst Platz in der Distribution und komprimieren Sie dann den virtuellen Datenträger nach Microsofts WSL-Anleitung zum Speicherplatz und den eigenen Datenträgerabbildeinstellungen von Docker Desktop. Der genaue Befehl hängt von der WSL-Version und dem Docker-Backend ab, deshalb nutzen Sie die versionsspezifischen Schritte, statt einen Befehl zu kopieren.
Wiederholen Sie nach der Bereinigung docker system df -v, starten Sie die Dienste, die Sie behalten, prüfen Sie Datenbankeinträge und schließen Sie den ursprünglichen Build ab. Prüfen Sie die Anzeigen von Docker, Linux und Windows getrennt. Die Seite Analyse in Mole kann große Dateien finden. Ressourcen und virtuelle Datenträger gehören den zuständigen Werkzeugen. Gewöhnliche Paketcaches stehen in der Anleitung zu Entwickler-Caches.