Levo-Anleitungen · Entwickler: alles andere

Docker belegt zu viel Speicherplatz auf dem Mac

Docker speichert auf dem Mac alles in einer großen virtuellen Festplattendatei, Docker.raw, und diese Datei wächst, schrumpft aber nicht von selbst. Führ docker system df aus, um zu sehen, was den Platz belegt, und dann docker system prune und docker builder prune, um ihn freizugeben.

Levos Liste Ready to free mit Docker-Images und Build-Cache, jeweils mit Größe und Begründung
WasSo siehst du esSicher zu löschen?
Gestoppte Containerdocker ps -aJa, außer du brauchst, was in einem steckt
Ungenutzte Imagesdocker imagesJa, sie werden bei Bedarf geladen oder neu gebaut
Build-Cachedocker builder duJa, der nächste Build ist langsamer
Volumesdocker volume lsVorsicht. Hier liegt eine Datenbank
Die Festplattendatei~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.rawNie von Hand

Warum Docker.raw so groß ist

Container laufen in einer kleinen Linux-VM, und die Festplatte der VM ist eine einzelne Datei auf deinem Mac. Docker Desktop legt eine Höchstgröße fest, oft 60 GB oder mehr, und die Datei wächst darauf zu, während du Images lädst und baust. Im Finder kann sie viel größer wirken, als sie ist, denn sie ist eine Sparse-Datei: ls -lh zeigt das Maximum, du -sh zeigt, was wirklich belegt ist.

Der Haken ist, dass das Löschen von Images Platz in der VM freigibt, die Datei auf deinem Mac aber nicht gleich schrumpft. Neuere Versionen von Docker Desktop geben freie Blöcke an macOS zurück, aber bei älteren Setups oder nach viel Betrieb musst du die Festplatte vielleicht in Settings › Resources verkleinern oder zurücksetzen.

So machst du es selbst

So siehst du, was den Platz belegt

docker system df
docker system df -v

Der erste Befehl liefert Summen für Images, Container, Volumes und Build-Cache, mit einer Spalte RECLAIMABLE. Der zweite listet jeden einzeln. Der Build-Cache ist der stille: Nach ein paar Wochen Builds ist er oft die größte Zeile.

Platz freigeben

docker container prune
docker image prune -a
docker builder prune
docker system prune

In Volumes liegen Datenbanken, hochgeladene Dateien und alles, was deine Compose-Datei in ein benanntes Volume eingehängt hat. docker system prune --volumes entfernt jedes Volume, das gerade kein Container nutzt, auch das Postgres-Volume aus dem Projekt, das du nächste Woche öffnest. Lass sie dir mit docker volume ls anzeigen und entfern sie einzeln mit docker volume rm <name>, nachdem du nachgesehen hast.

Den Platz an macOS zurückgeben

Prüf nach dem Aufräumen die echte Größe noch einmal.

du -sh ~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw

Ist sie immer noch riesig, öffne Docker Desktop, geh zu Settings › Resources und senk das Virtual disk limit, oder wähl Troubleshoot › Clean / Purge data, um von vorn zu beginnen. Die zweite Option löscht alle deine Images, Container und Volumes. Zieh Docker.raw nicht in den Papierkorb, solange Docker läuft: Du verlierst alles darin und kannst die VM beschädigen.

OrbStack, Colima und Podman

Dieselben Befehle funktionieren, weil alle die Docker-API sprechen. Der Unterschied ist, wo die Festplatte liegt.

Nutzt du Docker gar nicht mehr, siehe Docker auf dem Mac deinstallieren. Für einen breiteren Blick auf den Rest deiner Toolchain gibt es das Aufräumen der Festplatte für Entwickler.

So macht es Levo

Levo listet Docker-Images und Build-Cache als eigene Arten in Ready to free, mit Größen und Begründungen. Es findet sie über seinen Live-Index deiner Festplatte, du siehst sie also, ohne einen Befehl auszuführen und ohne dir merken zu müssen, welchen der vier Prune-Befehle du nehmen sollst.

Dein Agent beurteilt, was sicher ist. Images, die nichts nutzt, und Build-Cache sind übliche Kandidaten. Volumes können Daten enthalten, die du nicht zurückbekommst, sieh sie dir also selbst an, und Levo räumt nie etwas auf, das in Benutzung ist. Der Agent liest nur, und Levo löscht, nachdem es noch einmal geprüft hat.

Du wählst eine Bereinigungsstufe, hakst an, was weg soll, und klickst auf Clean up. Deinstallierst du Docker Desktop mit Levo, listet der Bestätigungsschritt seine großen Reste auf, damit du sie siehst, bevor sie verschwinden. Siehe Levo für Webentwickler. Zwei Bereinigungen sind kostenlos, danach gibt es eine Lizenz für die gesamte Lebensdauer.

FAQ

Ist es sicher, docker system prune auszuführen?

Ja bei Containern, Netzwerken, Dangling-Images und Build-Cache, aber der nächste Build wird langsamer, und einige Images werden erneut geladen. Volumes lässt es in Ruhe, außer du fügst --volumes hinzu, und bei diesem Flag ist Vorsicht geboten.

Warum ist Docker.raw nach dem Löschen von Images immer noch riesig?

Die Datei ist sparse und schrumpft nicht immer, wenn in der VM Platz frei wird. Prüf die echte Größe mit du -sh. Ist sie immer noch groß, senk das Limit der virtuellen Festplatte in den Resources-Einstellungen von Docker Desktop oder bereinige seine Daten.

Kann ich Docker.raw löschen?

Nur über das Troubleshoot-Menü von Docker Desktop bei laufendem Docker oder nach dem Beenden und Deinstallieren. Wer die Datei von Hand löscht, entfernt jedes Image, jeden Container und jedes Volume darin.

Wie viel Platz braucht Docker auf dem Mac?

Das hängt davon ab, was du ausführst. Plan mit 20 bis 60 GB, wenn du viele Images baust. Das Limit der virtuellen Festplatte in Docker Desktop legt die Obergrenze fest.

Belegt OrbStack weniger Platz als Docker Desktop?

Meist, weil es nach Bedarf wächst und schrumpft und Dateien mit macOS teilt. Es behält trotzdem Images, Build-Cache und Volumes, docker system df und prune gelten also auch dort.