# Limpiar Docker en Mac sin perder datos

> Inspecciona imágenes, contenedores, caché de build y volúmenes con estado antes de hacer prune, y mide por separado la asignación de discos dispersos.

Published: 2026-06-26 | Updated: 2026-08-08

Docker Desktop puede ocupar decenas de gigabytes porque las imágenes, las capas escribibles de los contenedores, la caché de build y los volúmenes viven dentro de un disco virtual de Linux. Esas categorías no se pueden borrar con la misma tranquilidad. La caché de build suele ser reproducible; un volumen de base de datos puede ser la única copia de datos importantes. Una limpieza segura empieza por el inventario de Docker, no por su comando de prune más amplio.

## Por qué el espacio de Docker no vuelve solo

Docker Desktop en macOS ejecuta una VM de Linux y normalmente guarda sus datos en un disco virtual sparse llamado `Docker.raw`. La
[guía de almacenamiento en Mac](https://docs.docker.com/desktop/troubleshoot-and-support/faqs/macfaqs/#where-does-docker-desktop-store-linux-containers-and-images)
de Docker indica **Docker Desktop > Settings > Resources > Advanced** para ver su ubicación, el límite de disco y el espacio real que consume. Muévelo con ese control, no con Finder. Un archivo sparse tiene un tamaño lógico máximo y una asignación física más pequeña, así que solo con `ls -lh` puede parecer mucho más grande de lo que realmente ocupa en ese momento.

Mira cuánto espacio cree Docker que está usando:

```
docker system df -v
```

La vista detallada desglosa imágenes, contenedores, volúmenes locales y caché de build. "Reclaimable" significa que Docker no ve ninguna referencia actual que requiera ese objeto; no demuestra que no vayas a necesitar mañana un contenedor detenido, una imagen antigua o un volumen. Revisa también `docker ps -a` y `docker volume ls` antes de hacer prune.

## Empieza con limpiezas acotadas

Siempre recupera espacio desde dentro de Docker, no borrando el archivo del disco virtual. Empieza por la categoría que entiendes:

```
docker builder prune --filter until=168h
docker image prune
docker container prune
```

El primer comando elimina la caché de build de más de siete días; ajusta la antigüedad a tu flujo de trabajo. Los dos siguientes piden confirmación antes de quitar imágenes dangling y contenedores detenidos. Vuelve a ejecutar `docker system df -v` después de cada paso para ver qué acción tuvo efecto.

La [guía de pruning](https://docs.docker.com/engine/manage-resources/pruning/) de Docker documenta `docker system prune` como un comando de conveniencia más amplio. Añadir `-a` elimina todas las imágenes no usadas, no solo las capas dangling. Añadir `--volumes` amplía la operación a volúmenes anónimos no usados, que pueden contener archivos de base de datos u otro estado. No conviertas `docker system prune -a --volumes` en tu comando de limpieza por defecto. Antes de cualquier prune de volúmenes, inspecciona nombres y propiedad:

```
docker volume ls
docker volume inspect <volume-name>
```

Los volúmenes creados por Compose suelen llevar etiquetas de proyecto y de servicio. Identifica el proyecto al que pertenecen y exporta o respalda los datos que no se puedan reconstruir antes de eliminar el volumen.

## Recuperar el espacio de la imagen de disco

Después de un prune, los bloques libres existen dentro del sistema de archivos de Linux antes de que macOS necesariamente los reciba del disco sparse. La documentación actual de Docker indica que una imagen `Docker.raw` normalmente devuelve el espacio elegible del host en segundos; las imágenes antiguas `Docker.qcow2` usan un proceso en segundo plano que puede tardar minutos. Vuelve a medir el uso real del disco en lugar de juzgar por el máximo lógico del archivo. Un factory reset no es compactación: destruye contenedores locales, imágenes, volúmenes y ajustes. Úsalo solo cuando esa pérdida total sea intencional y los datos importantes de los volúmenes ya se hayan exportado.

## Bajo el capó: por qué el archivo crece y no se encoge

Docker Desktop ejecuta una VM de Linux, y `Docker.raw` es el disco virtual de esa VM: un archivo sparse que crece cuando el guest escribe, pero no devuelve espacio a macOS de forma automática cuando el guest borra. Al eliminar una imagen, los bloques se marcan libres dentro del sistema de archivos de la VM, pero el archivo en el host solo se reduce si el guest emite TRIM/discard y Docker Desktop puede usar discard y compactación para devolver los bloques elegibles. El tiempo depende de su versión y de la implementación de la imagen de disco. Por eso una limpieza lógica y el cambio de capacidad a nivel del host hay que medirlos por separado, y por eso borrar el archivo en el host equivale a destruir todo el entorno de Docker.

<figure class="blog-diagram">
  <img src="https://mole.fit/img/blog/docker-raw-growth.webp" width="1360" height="454" loading="lazy" alt="Un archivo sparse Docker.raw crece a medida que escribe la VM invitada y puede devolver bloques elegibles a macOS mediante discard y compactación">
  <figcaption>Borrar un objeto de Docker libera espacio primero dentro de la VM. Devolver la asignación física a macOS es un paso aparte del disco sparse.</figcaption>
</figure>

## Dónde ayuda un mapa de disco

Un mapa de disco como la vista Analyze de [Mole](https://mole.fit/) puede revelar el disco virtual y su huella física. El propio CLI de Docker debe decidir qué objetos internos están referenciados. Las dos vistas responden preguntas distintas: macOS muestra dónde está asignada la capacidad, mientras Docker explica qué contiene esa asignación.

## Un orden seguro de operaciones

Ejecuta `docker system df -v`, identifica proyectos antiguos y volúmenes con estado, exporta los datos únicos y haz prune de una categoría a la vez. Vuelve a comprobar tanto los totales internos de Docker como la capacidad física de macOS. Usa flags amplios de prune solo después de revisar su alcance ampliado, y nunca uses un factory reset como atajo rutinario para recuperar espacio. La ganancia segura más rápida suele ser la caché de build antigua, no volúmenes desconocidos.

---

Canonical HTML page: https://mole.fit/es/blog/how-to-clean-up-docker-mac
Blog index for agents: https://mole.fit/es/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
