Docker Desktop deinstallieren und Named Volumes behalten
Docker Desktop ist keine einzelne App. Es ist eine GUI, eine Hintergrund-VM, eine Reihe von Kommandozeilentools mit Verknüpfungen in /usr/local/bin und ein Festplattenimage, das unbemerkt auf zig Gigabyte anwächst. In den Papierkorb ziehen entfernt nur den ersten Teil und lässt den Rest zurück.
Es verhält sich umgekehrt wie bei den meisten Deinstallationen: Das Ausführen des offiziellen Uninstallers ist der destruktive Schritt, nicht die anschließende Bereinigung. Im Folgenden die Reihenfolge, mit der Ihre Daten erhalten bleiben, und wie Sie verzichtbare Reste von denen unterscheiden, die Sie später brauchen.
Deinstallieren zerstört Container, Images und Volumes
Docker sagt das klar: Das Deinstallieren von Docker Desktop zerstört Container, Images, Volumes und andere lokale Docker-Daten auf dem Rechner. Es gibt kein Rückgängigmachen und keinen Papierkorb-Zwischenschritt. Nichts warnt Sie ein zweites Mal.
Das meiste davon lässt sich neu aufbauen. Images werden erneut gepullt, Container aus einem Dockerfile neu gebaut. Die Ausnahme sind Named Volumes: dort speichert eine lokale Datenbank ihre Daten. Ein Postgres- oder MySQL-Container, mit dem Sie monatelang entwickeln, hält seine Zeilen in einem Volume, nicht im Image, und dieses Volume wird mit allem anderen gelöscht.
Bevor Sie etwas anderes tun, listen Sie auf, was vorhanden ist:
docker volume ls
Wenn ein Volume relevant ist, sichern Sie es vor dem Deinstallieren, nicht danach:
docker run --rm -v <volume>:/from -v "$PWD":/to alpine \
tar czf /to/<volume>.tgz -C /from .
Dasselbe gilt für alles, was Sie gebaut und nie gepusht haben. docker image ls zeigt, was lokal liegt; steht es nicht in einer Registry, existiert es nur auf diesem Mac.
Wenn es um Speicherplatz geht, brauchen Sie vielleicht gar nicht zu deinstallieren
Docker hält alles in einem großen virtuellen Festplattenimage, und diese Datei ist meist das größte, was Docker besitzt. Pruning innerhalb von Docker holt oft genau den Platz zurück, den Sie suchen, lässt das Tool aber installiert und ist umkehrbar. Starten Sie mit docker system df, um die Aufteilung zu sehen, und lesen Sie dann Docker auf dem Mac bereinigen, ohne Daten zu verlieren. Dort geht es um Pruning und darum, warum die Festplattendatei von allein nicht schrumpft.
Wenn Sie Docker endgültig entfernen wollen, lesen Sie weiter.
Den eigenen Uninstaller von Docker nutzen
Docker liefert einen Uninstaller mit, und er tut mehr, als nur das App-Bundle zu löschen. Er entlädt die Hintergrunddienste und entfernt die Kommandozeilen-Symlinks, die ein bloßes Verschieben im Finder hinterlässt.
Über die App: öffnen Sie Docker Desktop, wählen Sie das Troubleshoot-Symbol oben rechts, wählen Sie Uninstall und bestätigen Sie. Über das Terminal:
/Applications/Docker.app/Contents/MacOS/uninstall
Verschieben Sie Docker danach von Programme in den Papierkorb.
Meldet der Uninstaller operation not permitted, können Sie das laut Docker-Dokumentation bedenkenlos ignorieren: Die Deinstallation ist trotzdem durchgelaufen. Die Meldung kommt daher, dass macOS den Container-Ordner der App schützt, den das Terminal ohne Festplattenvollzugriff nicht anfassen kann.
Was übrig bleibt und wozu es gehört
Nach dem Uninstaller bleiben einige Ordner übrig. Docker nennt zwei:
~/Library/Group Containers/group.com.docker
~/.docker
Das sind keine gleichartigen Inhalte, und genau auf diesen Unterschied kommt es an.
~/.docker ist Ihre Konfiguration. Darin liegen Contexts, Daemon-Einstellungen und Registry-Zugangsdaten von docker login. Wenn Sie Docker später neu installieren oder zu Colima, Rancher Desktop oder OrbStack wechseln, ist das der Ordner, den Sie behalten mögen. Löschen bedeutet, sich bei jeder Registry neu anzumelden.
~/Library/Group Containers/group.com.docker und der Container-Ordner der App halten den Zustand der virtuellen Maschine und das Festplattenimage. Hier liegen die zig Gigabyte. Sobald klar ist, dass Container und Volumes weg sind, ist das der Teil, den es zu entfernen lohnt.
Darüber hinaus hinterlässt Docker die übliche macOS-Spur: Caches, Logs, Einstellungen und gespeicherten Anwendungszustand unter Ihrer Library. Die sind verzichtbar. Es geht nicht darum, jede Datei mit docker im Namen zu löschen, sondern zu wissen, was ein Cache ist und was Zugangsdaten.
Prüfen, dass es wirklich weg ist
Zwei Prüfungen. Erstens, dass nichts mehr läuft:
pgrep -fl -i docker
Zweitens, dass die Kommandozeilentools entkoppelt sind:
which docker docker-compose
Beide sollten nichts zurückgeben. Wenn docker noch gefunden wird, haben Sie vermutlich eine separat installierte Homebrew-Kopie der CLI, die ein anderes Paket ist und den Uninstaller von Docker Desktop absichtlich überlebt. brew list | grep docker zeigt es.
Der schnellere Weg, alles auf einmal zu sehen
Der manuelle Weg funktioniert, verlangt aber, dass Sie schon wissen, welche Pfade existieren und welcher davon Ihre Daten sind. Genau diesen Teil überspringen Anleitungen meist, und genau dort wird es teuer, wenn etwas schiefgeht.
Mole listet jede Datei, die eine App hinterlässt, bevor etwas entfernt wird, gruppiert so, dass Sie erkennen, was ein Ordner wirklich ist, mit der Größe daneben. Sie prüfen die Liste, entfernen die Häkchen bei dem, was Sie behalten wollen, und was Sie entfernen, wandert in den Papierkorb statt zu verschwinden. Bei Docker macht das Festplattenimage meist fast den gesamten freigewordenen Platz aus, und diese Zahl vor dem Bestätigen zu sehen unterscheidet eine gezielte Bereinigung von einer bösen Überraschung.
Was nach einer Neuinstallation zurückkommt
Images und Container kommen zurück, weil sie von vornherein reproduzierbar waren: Images lassen sich erneut pullen, Container bauen sich aus einem Dockerfile neu. Named Volumes nicht. Sie sind das Einzige, von dem es nirgendwo sonst eine Kopie gibt; deshalb lohnt sich der Backup-Schritt weiter oben.
Wer ~/.docker behält, bekommt Registry-Logins und Contexts mit zurück und spart sich erneutes docker login. Wer es löscht, meldet sich erneut an. Das kostet nur Zeit, sonst nichts.
Das virtuelle Festplattenimage wird leer neu angelegt. Es wächst wieder, sobald Images gepullt werden. Die Dutzenden Gigabyte, die eine Deinstallation freigibt, sind daher größtenteils vorübergehend, wenn man neu installiert und den normalen Betrieb fortsetzt. Diese Zahl langfristig klein zu halten, ist der Zweck von docker system prune, nicht einer Neuinstallation.