Volver al blog

Uso de disco de Docker en Mac: lo que realmente consume espacio

Aprende por qué Docker usa tanto espacio en disco en Mac, como inspeccionar imágenes, volúmenes y caché de build, y por qué eliminar carpetas de Docker directamente es riesgoso.

Publicado 18 de febrero de 2026 Autor Vladimir Chemeris Tiempo de lectura 14 min de lectura Actualizado 1 de septiembre de 2026
DockerContainersDeveloper Cleanup

Docker en Mac rara vez se ve enorme de golpe. Crece en capas.

Al principio es una imagen, un proyecto, un volumen de base de datos, un contenedor detenido, una caché de build que planeas limpiar después. Luego la máquina se aprieta, Docker Desktop empieza a parecer sospechoso, y la conclusión habitual es vaga pero emocionalmente satisfactoria: “Docker se está comiendo mi disco.”

Esa conclusión es correcta en dirección, pero demasiado imprecisa para ser útil. El verdadero problema normalmente no es “Docker en general.” Es la acumulación entre imágenes, capas, caché de build, contenedores detenidos, volúmenes y datos de runtime que nadie revisó como un sistema.

Respuesta rápida

  • El crecimiento de disco de Docker en Mac suele ser por acumulación, no por una carpeta rota.
  • Los drivers de almacenamiento comunes son imágenes, capas compartidas, caché de build, contenedores detenidos, volúmenes y objetos colgantes.
  • En Mac, Docker Desktop almacena contenedores e imágenes Linux dentro de una imagen de disco grande, así que la huella puede verse opaca solo desde Finder.
  • El primer paso es inspeccionar, no eliminar: revisa que es realmente recuperable antes de hacer prune.
  • rm directo dentro de rutas gestionadas por Docker es más riesgoso que la limpieza consciente de Docker porque Docker rastrea estado de runtime y metadatos.
  • prune puede ser útil, pero solo cuando entiendes si estás eliminando caché reconstruible o datos persistentes.
Pantalla de limpieza de runtime Docker de StorageRadar mostrando modo conservador, estado de dry run, toggle de volúmenes y botón de apply bloqueado antes de la revisión
Un flujo de revisión consciente de Docker separa el modo de limpieza, dry run y decisiones de volúmenes antes de que cualquier paso de apply este activo.

Por qué Docker crece silenciosamente tanto en Mac

Docker está diseñado para mantener estado útil hasta que tu explícitamente le digas lo contrario. La propia documentación de Docker describe la limpieza como conservadora: las imágenes, contenedores, volúmenes y redes no utilizados generalmente no se eliminan a menos que le pidas a Docker que lo haga.

Eso es conveniente para flujos de desarrollador y exactamente por lo que el uso de disco se acumula.

En Mac, la imagen se siente aun menos obvia porque Docker Desktop almacena contenedores e imágenes Linux en un solo archivo grande de imagen de disco. Eso significa que el host puede mostrar una huella grande de Docker mientras las causas reales están enterradas dentro de múltiples capas de datos de runtime.

El patrón de crecimiento suele ser alguna combinación de:

  • imágenes descargadas y reconstruidas a través de varios proyectos;
  • capas compartidas reutilizadas entre tags y versiones;
  • contenedores detenidos que aun mantienen capas de escritura;
  • volúmenes que contienen bases de datos, archivos subidos o estado local de servicios;
  • caché de build que mantiene los builds rápidos hasta que se vuelve costosa;
  • objetos colgantes dejados atrás después de reconstrucciones y retags.

El resultado es una huella que se expande silenciosamente porque cada adición individual parece normal.

¿Dónde guarda Docker sus datos en Mac?

En Mac, Docker no dispersa sus archivos por el disco como haría una app nativa. Docker Desktop ejecuta Linux dentro de una máquina virtual y guarda casi todo (imágenes, contenedores y volúmenes) dentro de un único archivo grande de imagen de disco.

Por defecto, ese archivo vive más o menos aquí:

~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw

La ruta exacta puede cambiar entre versiones de Docker Desktop, pero la idea es constante: un archivo gestionado contiene toda la huella del lado Linux. Por eso un solo Docker.raw aparece en Finder como decenas de gigabytes aunque buena parte de ese espacio sea recuperable o sea solo el tamaño máximo que la imagen de disco puede alcanzar.

De ese diseño se derivan dos consecuencias:

  • El tamaño en Finder engaña. Las herramientas del host suelen informar del tamaño máximo de la imagen de disco, no del espacio que Docker está usando dentro.
  • No toques Docker.raw directamente. La propia documentación de Docker para Mac advierte de no mover ni borrar la imagen de disco en Finder, porque Docker Desktop puede perderle la pista. El espacio se recupera a través de Docker, no del sistema de archivos.

Qué realmente consume espacio de Docker en Mac

Si quieres un plan de limpieza útil, separa la huella de Docker en categorías en vez de tratarla como una caja negra gigante.

ComponentePor qué creceQue revisar primeroRiesgo si se limpia a ciegas
Imágenes y capas compartidasDescargar imágenes base, retagear, reconstruir servicios y mantener múltiples versionesQue imágenes aun usa contenedores activos o proyectos activosMedio
Caché de buildBuildKit y las reconstrucciones repetidas de imágenes mantienen caché para acelerar futuros buildsSi el espacio es mayormente caché y si la velocidad de rebuild importa hoyMedio
Contenedores detenidosLos contenedores salidos aun mantienen capas de escritura y referenciasSi esos contenedores están intencionalmente detenidos o simplemente olvidadosBajo a medio
VolúmenesBases de datos, subidas, índices, registros de paquetes y estado local de servicios viven aquíSi un volumen contiene datos persistentes de proyecto que aun necesitasAlto
Objetos colgantesImágenes sin tag y artefactos huérfanos se acumulan después de reconstruccionesSi son realmente no referenciados y recuperablesBajo
Datos de runtime de Docker DesktopLa imagen de disco del lado Mac y el almacenamiento gestionado por runtime hacen que todo parezca un bloque grandeSi la huella visible del host es uso real, espacio recuperable o solo almacenamiento de runtime asignadoMedio a alto

Por eso un flujo genérico de “carpeta más grande” es débil para Docker. El mismo tamaño total puede significar decisiones de limpieza muy diferentes dependiendo de si el espacio es mayormente caché de build o mayormente datos reales de volúmenes.

ObjetivoLo que realmente esRiesgo típicoConsecuencia probable después de la limpieza
Caché de buildCaché de rebuild orientada a velocidad mantenida por el builderBajo a medioPróximos builds más lentos hasta que la caché se reconstruya
Contenedores detenidosCapas de escritura retenidas y estado de contenedor para reanudación fácilBajo a medioPierdes el estado conveniente de reanudación para entornos inactivos
Imágenes no utilizadasImágenes descargadas o construidas que ningún contenedor activo necesita actualmenteMedioLa próxima ejecución puede necesitar un repull o rebuild
VolúmenesDatos persistentes locales de servicios como bases de datos, subidas o índicesAltoDatos reales de proyecto local pueden desaparecer

Imágenes de Docker y capas compartidas

Las imágenes suelen ser lo primero en lo que piensan los desarrolladores, pero la historia más profunda son las capas. Una máquina con varios runtimes de lenguaje, builds locales tipo CI y múltiples microservicios puede acumular muchas capas compartidas y únicas rápidamente.

Por eso el uso de disco no siempre se mapea limpiamente a la lista de imágenes que recuerdas haber descargado.

Caché de build de Docker

La caché de build es una de las causas ocultas más comunes en máquinas de desarrollo activas. Existe para hacer futuros builds más rápidos, lo que significa que se queda hasta que la limpias. Eso también significa que eliminarla suele ser un tradeoff de rendimiento, no una ganancia gratis.

Contenedores Docker detenidos

Los desarrolladores subestiman esto constantemente. Un contenedor que no está corriendo sigue siendo un objeto de almacenamiento. Si aun existe, puede seguir ocupando espacio en disco.

Volúmenes de Docker

Los volúmenes es donde el riesgo sube. Pueden contener los datos que realmente te importan: bases de datos, mirrors de paquetes, subidas, índices de búsqueda, contenido de registro local o estado de servicios.

Esa es la diferencia entre la limpieza de Docker y la limpieza ordinaria de caché. Parte del almacenamiento de Docker es reconstruible. Parte es tu entorno.

Imágenes y objetos colgantes de Docker

Los objetos colgantes suelen ser los candidatos de limpieza más seguros. La documentación de prune de Docker define las imágenes colgantes como imágenes que no tienen tag y no son referenciadas por ningún contenedor. Son exactamente el tipo de acumulación que crece a través de la iteración normal.

Cómo revisar el uso de disco de Docker en Mac

El mejor primer movimiento no es Finder. Es una vista a nivel de Docker de lo que el daemon cree que está consumiendo espacio.

La recomendación propia de Docker en Mac empieza con docker system df -v, que muestra el uso de imágenes, contenedores, volúmenes locales y espacio recuperable. Esa es la forma más rápida de dejar de adivinar.

Usa este orden de revisión:

1. Empieza con docker system df -v

Este es el mejor primer resumen porque muestra:

  • uso total y recuperable de imágenes;
  • uso de contenedores;
  • uso de volúmenes locales;
  • un desglose más detallado cuando usas el flag verbose.

Si el espacio recuperable es pequeño, la limpieza amplia probablemente no ayudara mucho.

2. Revisa los contenedores detenidos antes de hacer prune

Comprueba si hay muchos contenedores salidos que ya nadie necesita. Estos suelen ser candidatos de limpieza más seguros comparados con volúmenes o estado de runtime activo.

3. Revisa las imágenes separadas de la caché de build

Las imágenes y la caché de build resuelven problemas diferentes. Si la caché es la principal culpable, la limpieza enfocada en caché suele ser mejor que un reset amplio de todo lo que Docker posee.

4. Revisa los volúmenes antes de cualquier cosa que use --volumes

Esta es la parte que la gente se salta y luego lamenta. Un volumen puede parecer desconectado de un contenedor corriendo actualmente pero aun representar datos locales reales de un proyecto que planeas iniciar mañana.

5. Revisa la imagen de disco de Docker Desktop en Mac

El FAQ de Docker para Mac nota que Docker Desktop almacena contenedores e imágenes Linux en un solo archivo de imagen de disco y que algunas herramientas muestran el tamaño máximo del archivo en vez del tamaño consumido real. Eso importa porque un número aterrador del lado del host no siempre es lo mismo que desperdicio inmediatamente recuperable.

Regla de limpieza de Docker: Revisa el espacio recuperable antes de revisar el espacio total. Una huella grande por si sola no te dice qué acción de limpieza es segura.

Antes de hacer prune

  • Confirma si la presión real es caché de build, imágenes, contenedores detenidos o volúmenes.
  • Comprueba si algún contenedor corriendo o recientemente detenido aun es parte de trabajo activo.
  • Trata los volúmenes como revisión de datos, no revisión de caché.
  • Prefiere el alcance más estrecho de limpieza consciente de Docker que resuelva el problema.
  • Espera costos de rebuild, repull o arranque más lento después de la limpieza.
  • No uses la limpieza de Docker para reaccionar emocionalmente a un número grande y opaco de imagen de disco del host.

Comandos rápidos de revisión de Docker

Estos comandos de inspección son útiles antes de eliminar nada:

docker system df -v
docker ps -a --size
docker images --format 'table {{.Repository}}\t{{.Tag}}\t{{.Size}}'
docker volume ls

Úsalos para confirmar que es realmente recuperable antes de elegir cualquier alcance de prune.

Cómo liberar espacio de Docker en Mac

Cuando docker system df -v ya muestra qué es realmente recuperable, libera espacio con el alcance más estrecho que resuelva el problema, en vez de con una pasada amplia:

# eliminar contenedores detenidos
docker container prune

# eliminar la caché de build (BuildKit)
docker builder prune

# eliminar imágenes colgantes (sin etiqueta)
docker image prune

# eliminar volúmenes sin usar - solo tras confirmar que no guardan datos que necesites
docker volume prune

Si quieres que Docker limpie varios tipos de objeto a la vez, docker system prune se encarga de contenedores detenidos, redes sin usar, imágenes colgantes y caché de build sin usar en un solo paso. Añade -a para eliminar también las imágenes que ningún contenedor usa, y --volumes solo cuando tengas la certeza de que ningún volumen guarda datos reales.

También puedes recuperar espacio desde Docker Desktop: abre Settings → Resources para ajustar o reducir el tamaño del disco virtual, o usa Troubleshoot → Clean / Purge data para un reinicio más fuerte. Ambos caminos se quedan dentro del flujo del propio Docker, que es más seguro que tocar Docker.raw a mano.

El intercambio es siempre el mismo: podar caché e imágenes te cuesta builds más lentos y volver a descargar, no tu código fuente, mientras que podar volúmenes puede eliminar datos locales reales, así que trata ese alcance con la máxima cautela.

Por qué eliminar carpetas de Docker directamente es riesgoso

La eliminación directa se siente atractiva porque parece decisiva. También es como conviertes la limpieza de Docker en ruleta de limpieza de runtime.

Hay dos razones.

Primera, Docker rastrea estado de runtime y metadatos. Cuando eliminas archivos gestionados por Docker fuera del propio flujo de Docker, arriesgas romper la relación entre lo que el runtime cree que existe y lo que realmente está en disco.

Segunda, en Mac la huella de Docker está vinculada a la imagen de disco gestionada por Docker Desktop y el almacenamiento de runtime. La documentación de Docker para Mac advierte explícitamente que no muevas la imagen de disco directamente en Finder porque Docker Desktop puede perderle la pista. La misma lección general aplica a la eliminación por fuerza bruta dentro del almacenamiento gestionado por Docker: las acciones conscientes de Docker son más seguras que adivinar en el filesystem.

Por eso eliminar archivos dentro de un contenedor corriendo no es lo mismo que recuperar espacio de disco del host. La documentación de Docker para Mac nota que el espacio del host se recupera cuando se eliminan imágenes, no automáticamente cuando los archivos desaparecen dentro de contenedores corriendo.

Cuándo prune ayuda

prune es útil cuando ya entiendes la huella y quieres que Docker elimine objetos que considera no utilizados.

Los casos principales donde ayuda son sencillos:

  • docker system prune cuando contenedores detenidos, redes no utilizadas, imágenes colgantes y caché de build no utilizada se han acumulado;
  • docker builder prune cuando la caché de build es el verdadero problema;
  • docker volume prune cuando has verificado que los volúmenes no utilizados son verdaderamente desechables;
  • limpieza filtrada por tiempo o etiqueta cuando quieres estrechar el alcance en vez de barrer todo.

Aquí es donde la limpieza consciente de Docker es claramente mejor que la eliminación cruda de archivos. El runtime entiende los tipos de objetos. Finder no.

Cuándo docker system prune es peligroso

El peligro no es que prune sea malo. El peligro es que “no utilizado” en Docker puede seguir significando “importante para mi flujo de trabajo.”

Ten cuidado cuando:

  • un contenedor detenido es parte de un entorno local que planeas reanudar;
  • el próximo build necesita la caché que estás a punto de limpiar;
  • volúmenes locales contienen datos de bases de datos o servicios que aun te importan;
  • docker system prune -a eliminaría imágenes que no están corriendo ahora pero que aun son parte de trabajo activo;
  • estás a punto de añadir limpieza de volúmenes sin primero confirmar que representan esos volúmenes.

La documentación de Docker es explícita en que los volúmenes no se eliminan automáticamente porque eso podría destruir datos. Ese es el modelo mental correcto para la limpieza de volúmenes en general: los volúmenes merecen más sospecha que las imágenes o la caché colgante.

Cómo entender las consecuencias antes de la limpieza

Antes de limpiar nada, responde la pregunta de consecuencia en lenguaje llano:

¿Qué tendré que reconstruir, re-descargar, restaurar o re-crear después de esto?

Esa pregunta es más útil que “¿Cuánto puedo eliminar?”

Para Docker, la revisión práctica suele verse así:

  1. ¿La huella principal es imágenes, caché de build, contenedores detenidos o volúmenes?
  2. ¿Hay contenedores corriendo que son parte del plan, o la limpieza requiere detenerlos primero?
  3. Si hago prune de la caché, ¿estoy cómodo con builds más lentos o re-descargas después?
  4. Si hago prune de volúmenes, ¿qué estado de servicio o datos desaparecen con ellos?
  5. ¿Estoy usando la limpieza de Docker para resolver un problema real de espacio recuperable, o reaccionando a una imagen de disco grande y opaca?

Esa es la diferencia entre una limpieza de desarrollador controlada y pánico aleatorio de almacenamiento.

Por qué la limpieza de desarrollo es diferente de la limpieza ordinaria de archivos

La limpieza ordinaria de archivos pregunta: “¿Qué carpeta es grande?”

La limpieza de Docker necesita preguntas diferentes:

  • esto es caché reconstruible o datos persistentes de servicio;
  • el runtime lo reporta como recuperable;
  • la limpieza debería pasar por comandos de Docker en vez de eliminación del filesystem;
  • contenedores corriendo, detenidos o volúmenes son parte del modelo de consecuencias;
  • ¿necesito una revisión guiada antes de aplicar una ruta de limpieza riesgosa?

Por eso Docker pertenece en un flujo consciente de contenedores, no en el mismo cubo mental que eliminar descargas o vaciar una carpeta genérica de caché.

Dónde encaja StorageRadar

Eso importa porque Docker no es solo “una carpeta grande.” Es un ecosistema de tipos de objetos con diferentes consecuencias de limpieza.

Si la caché de build es el problema, tu acción es diferente a la de una máquina pesada en volúmenes. Si los contenedores corriendo deben detenerse primero, eso debería ser visible antes de la limpieza. Si el perfil es riesgoso, el flujo debería ralentizarte a propósito.

Inspecciona la huella de Docker antes de hacer prune.

Ver Dev Cleanup

Lo que no deberías hacer

Evita estos errores comunes:

  • no trates cada huella grande de Docker como un problema con un solo comando;
  • no ejecutes rm -rf directo dentro de directorios gestionados por Docker porque las rutas se ven grandes;
  • no asumas que una imagen de disco grande de Docker Desktop significa que todo ese espacio es recuperable de forma segura ahora mismo;
  • no añadas limpieza de volúmenes a la ligera si no has comprobado que contienen esos volúmenes;
  • no uses un prune amplio justo antes de una demo, release o reconstrucción de entorno local que no puedes permitirte.

Si Docker es solo una parte de un problema más amplio de máquina de desarrollo, la guía complementaria sobre DerivedData de Xcode ocupando demasiado espacio en Mac es una buena próxima lectura.

Conclusión

El uso de disco de Docker en Mac normalmente no es misterioso una vez que lo divides en los cubos correctos. Los mayores contribuyentes suelen ser imágenes, capas, caché de build, contenedores detenidos, volúmenes, objetos colgantes y almacenamiento de runtime de Docker Desktop.

El movimiento seguro es inspeccionar la huella primero, separar artefactos reconstruibles de datos persistentes y usar limpieza consciente de Docker solo después de entender las consecuencias.

Sobre el autor

Vladimir Chemeris

Fundador, StorageRadar

Vladimir Chemeris crea StorageRadar, una aplicación de análisis de almacenamiento de macOS que prioriza la privacidad y se centra en la limpieza con revisión previa, el almacenamiento del desarrollador y la visibilidad del antes y el después.

Preguntas frecuentes

¿Por qué Docker usa tanto espacio en disco en Mac?

Docker acumula imágenes, capas compartidas, contenedores detenidos, caché de build, volúmenes y datos de runtime con el tiempo. En Mac, Docker Desktop también almacena contenedores e imágenes Linux dentro de una imagen de disco grande, así que el crecimiento puede sentirse opaco.

¿Cómo reviso el uso de disco de Docker en Mac?

Empieza con docker system df -v, luego revisa imágenes, contenedores detenidos, volúmenes y si el número grande que ves es uso realmente recuperable o solo el límite configurado de la imagen de disco.

¿Es seguro eliminar carpetas de Docker directamente en Finder o con rm -rf?

Normalmente no. Docker rastrea su propio estado de runtime y metadatos, y en Mac Docker Desktop gestiona un archivo de imagen de disco. La eliminación directa de carpetas puede desincronizar Docker, eliminar estado importante o crear caos de limpieza.

¿Cuándo es útil docker system prune en Mac?

Es útil cuando se han acumulado contenedores detenidos redundantes, imágenes colgantes, redes no utilizadas y caché de build. Es un paso de limpieza con revisión previa, no una respuesta universal a cada huella grande de Docker.

¿Cuándo puede ser riesgoso prune?

Prune se vuelve más riesgoso cuando los volúmenes pueden contener datos reales, cuando aun dependes de contenedores detenidos o capas cacheadas, o cuando una limpieza amplia ralentizara el próximo build, pull o restauración de entorno local.

¿Los volúmenes de Docker son lo mismo que las imágenes o la caché de build?

No. Las imágenes y la caché de build suelen ser reconstruibles. Los volúmenes es donde pueden vivir datos persistentes de contenedores, por lo que merecen más precaución antes de la limpieza.

¿Dónde guarda Docker las imágenes y los datos en Mac?

En Mac, Docker Desktop guarda las imágenes de Linux, los contenedores y los volúmenes dentro de un único archivo de imagen de disco, por defecto alrededor de ~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw (la ruta exacta varía según la versión de Docker Desktop). Como es un archivo gestionado, las herramientas del host suelen informar de su tamaño máximo en vez del espacio realmente usado.

¿Cómo libero espacio de Docker en Mac?

Empieza con docker system df -v para ver qué es realmente recuperable y luego limpia de forma dirigida: docker container prune para contenedores detenidos, docker builder prune para la caché de build y docker image prune para imágenes colgantes. Usa docker volume prune solo tras confirmar que los volúmenes no guardan datos que necesites. En Docker Desktop también puedes recuperar espacio desde Settings y luego Resources, o con Troubleshoot y luego Clean o Purge data.

Inspecciona la huella de Docker antes de hacer prune.

StorageRadar trata la limpieza de contenedores como un flujo de desarrollador, no como eliminación ciega de carpetas.