Désinstaller Docker Desktop sans perdre un volume
Docker Desktop n'est pas une seule application. C'est une interface graphique, une machine virtuelle en arrière-plan, un ensemble d'outils en ligne de commande liés symboliquement dans /usr/local/bin, et une image disque qui grossit discrètement jusqu'à des dizaines de gigaoctets. Le déplacer vers la Corbeille ne retire que le premier élément et laisse le reste.
C'est aussi l'inverse de la plupart des désinstallations : lancer le programme de désinstallation officiel est l'étape destructrice, pas le nettoyage qui suit. Voici l'ordre qui préserve vos données, et comment distinguer les restes jetables de ceux que vous voudrez récupérer.
Avant de supprimer les fichiers de support, comparez avec la procédure officielle actuelle de Docker Desktop. Si l’éditeur fournit son propre programme ou une commande dans l’app, utilisez-le d’abord, puis ne traitez que les résidus dont le propriétaire est établi.
La désinstallation détruit vos conteneurs, images et volumes
Docker le dit clairement : désinstaller Docker Desktop supprime les conteneurs, les images, les volumes et les autres données Docker locales. Il n'y a ni annulation ni passage par la Corbeille. Sauvegardez les données importantes avant de confirmer.
Les images peuvent être retéléchargées ou reconstruites si le registre ou les sources complètes sont encore accessibles. Une image non publiée ou des modifications dans un conteneur peuvent toutefois être des copies uniques. Vérifiez surtout les volumes nommés : ils peuvent contenir les données d'une base Postgres ou MySQL locale et seront supprimés eux aussi.
Avant toute chose, listez ce qui existe :
docker volume ls
Sauvegardez les volumes importants avant de désinstaller. Pour une base de données, préférez son outil de sauvegarde. Avant une copie de fichiers comme celle-ci, arrêtez toutes les écritures pour obtenir une sauvegarde cohérente :
docker run --rm -v <volume>:/from -v "$PWD":/to alpine \
tar czf /to/<volume>.tgz -C /from .
La même règle s'applique à tout ce que vous avez construit sans jamais le publier. docker image ls montre ce qui est local ; s'il n'est pas dans un registre, il n'existe que sur ce Mac.
Si c'est l'espace disque qui vous motive, vous n'avez peut-être pas besoin de désinstaller
Docker conserve une grande partie de ses données locales dans une image de disque virtuel. Le pruning peut libérer de la place sans désinstaller Docker, mais supprime définitivement les données sélectionnées. Commencez par docker system df pour voir la répartition, puis lisez Nettoyer Docker sur Mac sans perdre de données, qui explique le pruning et pourquoi le fichier disque ne rétrécit pas toujours immédiatement.
Si votre but est de retirer Docker définitivement, continuez.
Utilisez le programme de désinstallation de Docker
Docker fournit un programme de désinstallation et il fait plus que supprimer le paquet. Il décharge les services d'arrière-plan et retire les liens symboliques des outils en ligne de commande qu'un glisser-déposer dans le Finder laisse derrière lui.
Depuis l'application : ouvrez Docker Desktop, sélectionnez l'icône Troubleshoot en haut à droite, choisissez Uninstall, et confirmez. Depuis le Terminal :
/Applications/Docker.app/Contents/MacOS/uninstall
Puis déplacez Docker des Applications vers la Corbeille.
Docker documente une erreur précise operation not permitted sur .com.apple.containermanagerd.metadata.plist dans le conteneur de l’app : ce fichier peut rester après une désinstallation par ailleurs réussie. Cela ne vaut pas pour toutes les erreurs d’autorisation. Vérifiez le chemin concerné et le résultat du programme ; le Terminal peut avoir besoin de l’Accès complet au disque pour retirer les résidus protégés.
Ce qui reste, et à quoi cela correspond
Après l'exécution du programme de désinstallation, certains dossiers demeurent. Docker en nomme deux :
~/Library/Group Containers/group.com.docker
~/.docker
Ce n'est pas la même chose, et toute la différence est là.
~/.docker est votre configuration. Il contient les contextes, les réglages du démon et les identifiants de registre issus de docker login. Si vous réinstallez Docker plus tard, ou passez à Colima, Rancher Desktop ou OrbStack, c'est le dossier que vous voudrez peut-être garder. Le supprimer signifie se reconnecter à chaque registre.
~/Library/Containers/com.docker.docker est le dossier conteneur de l'application. Il contient la machine virtuelle et son image disque, Docker.raw : c'est là que se trouvent les dizaines de gigaoctets, et c'est aussi le dossier protégé concerné par l'erreur operation not permitted décrite plus haut. ~/Library/Group Containers/group.com.docker contient les réglages de Docker Desktop, pas l'image disque. Une fois que vous avez accepté que les conteneurs et les volumes sont partis, ce sont ces deux dossiers qu'il vaut la peine de retirer.
Au-delà de ces deux éléments, Docker laisse les traces habituelles d'une application macOS : caches, journaux, préférences et état d'application sauvegardé sous votre Bibliothèque. Ceux-là sont jetables. L'objectif n'est pas de supprimer chaque fichier portant docker dans le nom, mais de savoir lequel est un cache et lequel est un identifiant.
Vérifiez qu'il a bien disparu
Deux vérifications. D'abord, que plus rien ne tourne :
pgrep -fl -i docker
Ensuite, que les outils en ligne de commande ont bien été retirés :
which docker docker-compose
Les deux ne doivent rien renvoyer. Si la commande docker est encore trouvée, vous avez probablement une copie Homebrew de la CLI installée à part, un paquet différent qui reste volontairement en place après le programme de désinstallation de Docker Desktop. brew list | grep docker vous le dira.
La façon la plus rapide de tout voir d'un coup
La voie manuelle fonctionne, mais elle exige que vous sachiez déjà quels chemins existent et lequel contient vos données. C'est la partie que les guides omettent en général, et c'est celle qui vous fait payer cher quand elle tourne mal.
Mole montre les résidus détectés avant leur suppression, regroupés avec leur taille. Vous examinez la liste et décochez ce que vous voulez garder. Les suppressions ordinaires passent par la Corbeille et restent récupérables tant qu’elle n’est pas vidée. Pour Docker, l’image disque peut représenter l’essentiel de l’espace : vérifiez les données qu’elle contient avant de confirmer.
Ce qui revient après une réinstallation
Les images et les conteneurs ne reviennent pas automatiquement. Il faut des images accessibles ou des sources et configurations complètes. Les données des volumes, les images non publiées et les modifications internes aux conteneurs nécessitent leur propre sauvegarde.
Conserver ~/.docker permet de réutiliser les configurations et les contextes. Les connexions aux registres peuvent aussi dépendre du gestionnaire d'identifiants utilisé. Si vous supprimez le dossier, vous devrez peut-être tout reconfigurer : vérifiez d'abord la sauvegarde.
L'image de disque virtuel est recréée vide. Elle grossit à nouveau à mesure que vous téléchargez des images, si bien que les dizaines de gigaoctets récupérés par une désinstallation sont pour l'essentiel temporaires si vous réinstallez et reprenez une utilisation normale. Pour limiter ce volume sur le long terme, c'est docker system prune qu'il faut, pas un cycle de réinstallation.