Espacio en disco de Docker y WSL en Windows: capas, volúmenes y limpieza
Docker informa de una gran reducción después de la limpieza, pero C: no gana de inmediato el mismo espacio. Identifica la capa que estás midiendo. Los recursos de Docker viven dentro de su entorno; un sistema de archivos de Linux puede vivir dentro de un disco virtual; Windows ve ese disco como un archivo. El espacio reutilizable dentro del entorno es distinto de la capacidad liberada en el host.
Identifica primero el entorno
Revisa el contexto actual de Docker y el inventario de almacenamiento. Estos comandos leen información sin eliminar recursos.
docker context show
docker system df -v
docker ps -a
docker volume ls
wsl --list --verbose
Una conexión remota de Docker informa de recursos remotos, no del uso local de C:. Comprueba también si están definidas DOCKER_HOST o DOCKER_CONTEXT; las variables de entorno pueden sustituir el destino de la conexión, como se describe en la documentación de contextos. La lista de WSL identifica las distribuciones locales y las versiones. La documentación del backend WSL de Docker explica que la disposición de los datos depende del historial de instalación; no des por hecho que cada PC tiene la misma distribución de datos de Docker.
Las capas de imagen compartidas cambian la cuenta
La referencia de uso de disco de Docker separa los tamaños de imagen compartidos y únicos. Las imágenes pueden reutilizar capas, así que quitar una no tiene por qué liberar el total mostrado. Recuperable describe candidatos según las relaciones de referencia actuales, no una garantía de que su contenido sea no deseado.
| Recurso | Contenido típico | Comprueba antes de quitarlo |
|---|---|---|
| Imágenes | Capas de tiempo de ejecución y de la aplicación | ¿Se pueden descargar o reconstruir, y otros contenedores las usan? |
| Contenedores | Instancias y capas de escritura | ¿Un contenedor detenido guarda contenido no exportado? |
| Caché de compilación | Resultados de compilación reutilizables | ¿La siguiente compilación puede descargar y recalcular lo que necesita? |
| Volúmenes | Bases de datos persistentes o archivos cargados | ¿Qué proyecto los posee, y la recuperación está comprobada? |
En un ejemplo hipotético, dos imágenes de 2 GB comparten 1,5 GB. Quitar una no implica una ganancia de 2 GB. Un volumen sin una referencia a un contenedor actual puede contener aun así la base de datos que acabas de detener.
Apunta a la caché de compilación cuando ese sea el problema
Comprueba que sigan disponibles el código fuente, las fuentes de dependencias y la configuración de compilación. Si aceptas reconstruir los resultados en caché, el comando builder prune de Docker apunta a la caché de compilación. El comando siguiente elimina la caché apta: lee la pregunta antes de aceptar y mantén activada la confirmación interactiva.
docker builder prune
Su alcance es más estrecho que docker system prune, que también apunta a contenedores detenidos, imágenes seleccionadas y redes. Las opciones adicionales de system prune amplían todavía más la eliminación. Evita un comando universal para cada proyecto. Con varios builders, identifica el seleccionado; limpiar un entorno no demuestra que los demás se hayan tratado.
Haz una copia de los datos persistentes por separado
Exporta las bases de datos con sus propias herramientas y comprueba la restauración en un entorno aislado. La guía de copia de seguridad de Docker separa los datos de imágenes y de volúmenes. Guardar o confirmar una imagen no incluye los archivos de los volúmenes adjuntos. Un archivo Compose describe la configuración, no guarda el contenido de la base de datos.
Para una copia completa del disco virtual de Docker Desktop, sigue el procedimiento de apagado documentado, identifica el backend y la ubicación de datos configurada, y luego copia el archivo correcto. Un VHDX que está cambiando no es una copia estable. Haz una copia de las distribuciones personales de WSL por separado usando la guía de exportación de WSL. Anular el registro de una distribución quita sus datos; no es un paso rutinario para liberar espacio.
Compara las capas de Linux y de Windows
Dentro de tu distribución, df -h / informa del uso del sistema de archivos raíz, mientras que du -h --max-depth=1 /home ayuda a localizar el crecimiento de los directorios de usuario. El segundo comando no es un total de todo el sistema, y los permisos y otros directorios limitan su cobertura. Empieza por un directorio grande conocido en lugar de recorrer cada unidad montada.
La guía de almacenamiento de WSL de Microsoft explica el crecimiento dinámico de los VHD. El techo de capacidad de Linux no es el uso asignado por Windows. La eliminación puede aumentar el espacio interno reutilizable sin reducir de inmediato el archivo exterior. Para la recuperación del lado del host, comprueba las versiones actuales de WSL y Docker y los procedimientos compatibles. Evita eliminar o mover los discos virtuales de AppData, y no confundas aumentar un límite de capacidad con liberar C:. Para recuperar el archivo del host, libera primero espacio dentro de la distribución y luego compacta el disco virtual siguiendo la guía de espacio en disco de WSL de Microsoft y los ajustes de imagen de disco de Docker Desktop; el comando exacto depende de la versión de WSL y del backend de Docker, así que usa los pasos específicos de la versión en lugar de copiar un solo comando.
Después de la limpieza, repite docker system df -v, ejecuta los servicios que conservas, revisa los registros de la base de datos y completa la compilación original. Comprueba por separado las lecturas de Docker, Linux y Windows. La página Analizar de Mole puede localizar archivos grandes; la gestión de recursos y de discos virtuales pertenece a las herramientas propietarias. Consulta la guía de cachés de desarrollo para las cachés normales de paquetes.