Cómo quitar Docker Desktop sin perder un volumen
Docker Desktop no es una sola aplicación. Es una GUI, una máquina virtual en segundo plano, un conjunto de
herramientas de línea de comandos enlazadas en /usr/local/bin y una imagen de disco que crece sin avisar
hasta decenas de gigabytes. Arrastrarlo a la Papelera elimina lo primero y deja
el resto.
También tiene el problema opuesto al de la mayoría de desinstalaciones: ejecutar el desinstalador oficial es el paso destructivo, no la limpieza posterior. Este es el orden que conserva tus datos, y la forma de distinguir los restos desechables de los que querrás recuperar.
Desinstalar destruye tus contenedores, imágenes y volúmenes
Docker lo dice con claridad: desinstalar Docker Desktop destruye contenedores, imágenes, volúmenes y otros datos de Docker locales en la máquina. No hay marcha atrás ni paso por la Papelera. Nada te avisa una segunda vez.
La mayor parte de eso se puede reconstruir. Las imágenes se vuelven a descargar, los contenedores se reconstruyen desde un Dockerfile. La excepción son los volúmenes con nombre, que es donde una base de datos local guarda sus datos. Un contenedor de Postgres o MySQL con el que llevas meses desarrollando guarda sus filas en un volumen, no en la imagen, y ese volumen se elimina junto con todo lo demás.
Antes de cualquier otra cosa, lista lo que existe:
docker volume ls
Si un volumen importa, haz una copia de seguridad antes de desinstalar, no después:
docker run --rm -v <volume>:/from -v "$PWD":/to alpine \
tar czf /to/<volume>.tgz -C /from .
Lo mismo vale para cualquier cosa que hayas construido y nunca hayas subido. docker image ls muestra lo que
está en local; si no está en un registro, existe solo en este Mac.
Si el espacio es el motivo, puede que no necesites desinstalar
Docker guarda todo dentro de una gran imagen de disco virtual, y ese archivo suele ser
lo más grande que Docker posee. Hacer prune dentro de Docker a menudo recupera lo que
buscabas sin desinstalar la herramienta, y además es
reversible. Empieza con docker system df para ver el reparto y luego lee
Limpiar Docker en Mac sin perder datos, que
cubre el prune y la razón por la que el archivo de disco no se reduce por sí solo.
Si estás aquí para quitar Docker de forma definitiva, continúa.
Usa el desinstalador propio de Docker
Docker incluye un desinstalador y hace más que borrar el paquete. Detiene los servicios en segundo plano y elimina los enlaces simbólicos de línea de comandos que un arrastre desde Finder deja sueltos.
Desde la aplicación: abre Docker Desktop, selecciona el icono Troubleshoot arriba a la derecha, elige Uninstall y confirma. Desde Terminal:
/Applications/Docker.app/Contents/MacOS/uninstall
Después mueve Docker de Aplicaciones a la Papelera.
Si el desinstalador reporta operation not permitted, la documentación de Docker dice que esto
puedes ignorarlo sin problema: la desinstalación se completó de todos modos. El mensaje viene de macOS
protegiendo la carpeta de contenedor de la aplicación, que tu terminal no puede tocar sin Acceso
total al disco.
Qué queda y a quién pertenece
Tras ejecutar el desinstalador, algunas carpetas sobreviven. Docker nombra dos:
~/Library/Group Containers/group.com.docker
~/.docker
No son el mismo tipo de cosa, y esa diferencia es lo importante.
~/.docker es tu configuración. Contiene contextos, ajustes del daemon y credenciales de registro
de docker login. Si vas a reinstalar Docker más adelante, o a pasar a
Colima, Rancher Desktop u OrbStack, esta es la carpeta que quizá quieras conservar. Eliminarla
significa volver a iniciar sesión en cada registro.
~/Library/Group Containers/group.com.docker y la carpeta de contenedor de la aplicación guardan el
estado de la máquina virtual y la imagen de disco. Aquí están las decenas de gigabytes.
Una vez que aceptas que los contenedores y volúmenes ya no están, esta es la parte
que conviene eliminar.
Además de esas dos, Docker deja el rastro habitual de macOS: cachés, registros, preferencias y
estado guardado de la aplicación bajo tu Biblioteca. Son desechables. No se trata de
eliminar cada archivo con docker en el nombre, sino de saber cuál de ellos es una caché y
cuál es una credencial.
Confirma que realmente ha desaparecido
Dos comprobaciones. Primero, que no quede nada en ejecución:
pgrep -fl -i docker
Segundo, que las herramientas de línea de comandos ya no estén enlazadas:
which docker docker-compose
Ninguna de las dos debería devolver nada. Si docker sigue encontrándose, es probable que tengas una copia de Homebrew
del CLI instalada por separado, que es un paquete distinto y sobrevive al desinstalador de Docker
Desktop por diseño. brew list | grep docker te lo dirá.
La forma más rápida de verlo todo de una vez
La ruta manual funciona, pero te pide que ya sepas qué rutas existen y cuál de ellas guarda tus datos. Esa es la parte que las guías suelen saltarse, y es la que te sale cara cuando falla.
Mole lista cada archivo que deja una aplicación antes de eliminar nada, agrupado para que veas de verdad qué carpeta es cada cosa, con su tamaño al lado. Revisas el conjunto, desmarcas lo que quieres conservar, y lo que eliminas va a la Papelera en lugar de desaparecer. En el caso de Docker, la imagen de disco suele suponer casi todo el espacio recuperado, y ver ese número antes de confirmar es la diferencia entre una limpieza y una sorpresa.
Lo que vuelve tras una reinstalación
Las imágenes y los contenedores vuelven, porque siempre fueron reproducibles: las imágenes se descargan de nuevo y los contenedores se reconstruyen a partir de un Dockerfile. Los volúmenes con nombre no. Son lo único sin copia en ningún otro sitio, por eso merece la pena el paso de respaldo anterior.
Si conservas ~/.docker, los inicios de sesión del registro y los contextos vuelven con él, y te ahorras volver a hacer docker login. Si lo eliminas, vuelves a iniciar sesión: solo te cuesta tiempo.
La imagen de disco virtual se recrea vacía. Vuelve a crecer al descargar imágenes de nuevo, de modo que las decenas de gigabytes que libera una desinstalación son en su mayoría temporales si reinstalas y retomas el uso habitual. Mantener esa cifra baja a largo plazo es cosa de docker system prune, no de un ciclo de reinstalación.