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.
El procedimiento oficial de Docker Desktop advierte de que se borran contenedores, imágenes y volúmenes locales. Guarda primero lo que necesites y después usa el desinstalador de Docker.
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.
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 antes de desinstalar. Detén las escrituras antes de crear un archivo como el siguiente. Para bases de datos, usa su método de copia admitido o apágalas correctamente primero; copiar archivos mientras cambian puede producir una copia incoherente:
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, pero no 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.
Docker documenta un error concreto, operation not permitted, al acceder a la carpeta protegida
del contenedor de su app. En ese caso, la desinstalación puede completarse aunque quede la carpeta.
No significa que cualquier error de permisos pueda ignorarse: revisa la ruta exacta y el resultado.
Terminal necesita Acceso total al disco para acceder a esa carpeta protegida.
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/Containers/com.docker.docker es la carpeta de contenedor de la aplicación. Guarda la
máquina virtual y su imagen de disco, Docker.raw: aquí están las decenas de gigabytes, y es
también la carpeta protegida del error operation not permitted de arriba.
~/Library/Group Containers/group.com.docker guarda los ajustes de Docker Desktop, no la imagen de
disco. Una vez que aceptas que los contenedores y volúmenes ya no están, estas dos carpetas son 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 muestra los archivos relacionados que identifica antes de eliminar nada, agrupados 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
Puedes descargar imágenes que sigan en un registro y recrear contenedores si conservas su configuración de compilación y ejecución. Las imágenes solo locales, los cambios hechos dentro de un contenedor y los datos de volúmenes no vuelven automáticamente. Guarda antes todo lo que no puedas reproducir.
~/.docker contiene configuración del cliente y contextos, y puede hacer referencia a credenciales guardadas en otro lugar, como el Llavero. Copia los ajustes que necesites antes de borrarlo. Conservar la carpeta no garantiza que todas las sesiones sigan funcionando, y borrarla puede eliminar más que una sesión iniciada.
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.