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.
Prüfen Sie vor dem Löschen von Supportdateien die aktuelle offizielle Deinstallationsanleitung für Docker Desktop. Bietet der Hersteller ein eigenes Werkzeug oder einen App-Befehl an, verwenden Sie diesen zuerst und behandeln danach nur eindeutig zugehörige Reste.
Deinstallieren zerstört Container, Images und Volumes
Docker sagt das klar: Das Deinstallieren von Docker Desktop entfernt Container, Images, Volumes und andere lokale Docker-Daten auf dem Rechner. Es gibt kein Rückgängigmachen und keinen Papierkorb-Zwischenschritt. Sichern Sie wichtige Daten vor der Bestätigung.
Images lassen sich erneut herunterladen oder bauen, wenn Registry oder vollständige Build-Quellen noch verfügbar sind. Nicht veröffentlichte Images und Änderungen in Containern können dagegen die einzige Kopie sein. Prüfen Sie besonders Named Volumes: Darin können die Daten einer lokalen Postgres- oder MySQL-Datenbank liegen, und sie werden ebenfalls gelöscht.
Bevor Sie etwas anderes tun, listen Sie auf, was vorhanden ist:
docker volume ls
Sichern Sie wichtige Volumes vor dem Deinstallieren. Für Datenbanken bevorzugen Sie deren eigenes Sicherungswerkzeug. Stoppen Sie vor einer Dateikopie wie dieser alle Schreibzugriffe, damit die Sicherung einen konsistenten Zustand enthält:
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 speichert viele lokale Daten in einem großen virtuellen Festplattenimage. Pruning kann Speicher freigeben, ohne Docker zu deinstallieren, löscht ausgewählte Daten aber endgültig. 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 nicht immer sofort 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.
Docker dokumentiert einen bestimmten Fehler operation not permitted beim Entfernen von .com.apple.containermanagerd.metadata.plist im App-Container: Dieser kann nach einer ansonsten erfolgreichen Deinstallation übrig bleiben. Das gilt nicht pauschal für jeden Berechtigungsfehler. Prüfen Sie den betroffenen Pfad und das Ergebnis des Uninstallers; zum Entfernen geschützter Containerreste kann das Terminal Festplattenvollzugriff benötigen.
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/Containers/com.docker.docker ist der Container-Ordner der App. Er enthält die virtuelle Maschine und ihr Festplattenimage Docker.raw; hier liegen die zig Gigabyte, und es ist auch der geschützte Ordner aus dem oben beschriebenen Fehler operation not permitted. ~/Library/Group Containers/group.com.docker enthält die Einstellungen von Docker Desktop, nicht das Festplattenimage. Sobald klar ist, dass Container und Volumes weg sind, sind diese beiden Ordner 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 zeigt die gefundenen App-Reste vor dem Entfernen, gruppiert und mit ihrer Größe. Sie prüfen die Liste und wählen ab, was bleiben soll. Gewöhnliche Entfernungen gehen in den Papierkorb und sind dort bis zum Leeren wiederherstellbar. Bei Docker kann das Festplattenimage den größten Anteil ausmachen; prüfen Sie deshalb vor dem Bestätigen, welche Daten darin liegen.
Was nach einer Neuinstallation zurückkommt
Images und Container kommen nicht automatisch zurück. Sie brauchen erreichbare Images oder vollständige Build-Quellen und Konfigurationen. Volume-Daten, nicht veröffentlichte Images und Änderungen innerhalb von Containern benötigen eine eigene Sicherung.
Wer ~/.docker behält, kann Konfiguration und Contexts weiterverwenden. Registry-Anmeldungen können zusätzlich vom verwendeten Anmeldedatenspeicher abhängen. Wer den Ordner löscht, muss diese Einstellungen gegebenenfalls neu einrichten; prüfen Sie deshalb vorher die Sicherung.
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.