En este post veremos cómo limpiar cachés de paquetes en Docker. Al instalar paquetes durante la construcción de una imagen, los gestores pueden descargar índices y archivos que solo hacen falta en esa etapa. Si esos datos quedan dentro de la imagen final, ocupan espacio sin aportar nada al proceso que ejecutará la aplicación.
Para reducir ese contenido, actualiza los índices, instala los paquetes necesarios y limpia la caché en la misma instrucción RUN. Borrar archivos en una capa posterior no recupera el espacio de la capa donde se descargaron.
👉 Y recuerda, si quieres aprender más de Linux, pincha en este curso de Linux gratis.
🐳 Si quieres aprender más de Docker, pincha en este curso de Docker gratis.
Qué cachés deja un gestor de paquetes
Cada distribución guarda metadatos y paquetes descargados en ubicaciones distintas. Conviene aplicar el método propio de la base que uses y no añadir comandos de limpieza de otra distribución.
| Gestor | Qué suele dejar | Práctica recomendada |
|---|---|---|
| APT, Debian o Ubuntu | Índices en /var/lib/apt/lists y paquetes descargados. | Combina apt-get update con la instalación y elimina los índices al final de ese mismo RUN. |
| APK, Alpine | Índices y paquetes temporales. | Instala con apk add –no-cache para evitar conservar esos datos en la capa. |
| DNF, Fedora y derivados | Metadatos y paquetes descargados. | Ejecuta dnf clean all después de instalar lo necesario. |
| Caché del constructor Docker | Capas y resultados reutilizables durante otros builds. | Es independiente de la caché incluida en la imagen; limpiar una no elimina la otra. |
Limpia la caché en la misma capa
Docker guarda el resultado de cada instrucción en una capa. Si una instrucción descarga los índices y otra posterior los borra, la capa anterior sigue formando parte de la imagen. Por eso, agrupa actualización, instalación y limpieza en el mismo RUN.
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates curl && rm -rf /var/lib/apt/lists/*En imágenes Debian y Ubuntu oficiales, apt-get clean ya se ejecuta automáticamente. Eliminar /var/lib/apt/lists después de instalar sí ayuda a reducir el contenido que permanece en la imagen. La instalación y la limpieza deben seguir juntas para que no quede una capa intermedia con los índices.
Ejemplo con Alpine
En Alpine, –no-cache evita guardar los índices locales al añadir paquetes. No hace falta ejecutar después un comando de limpieza separado.
FROM alpine:3.22
RUN apk add --no-cache ca-certificates curlCaché de paquetes y caché de Docker
La caché del gestor contiene datos como índices y archivos de paquetes. La caché de Docker conserva resultados de instrucciones para acelerar construcciones futuras. Eliminar archivos del sistema de paquetes reduce el contenido de la imagen; no borra la caché del constructor. Si necesitas administrar esta última, consulta la documentación de Build cache y planifica su limpieza por separado.
Antes de ejecutar
- Comprueba qué distribución usa la imagen base para elegir APT, APK o DNF.
- Agrupa actualización, instalación y limpieza en una misma instrucción RUN.
- Verifica que la aplicación conserva certificados y bibliotecas que necesita para ejecutarse.
- Distingue los archivos de caché incluidos en la imagen de la caché que mantiene el constructor Docker.
Errores comunes
- Instalar en un RUN y borrar la caché en otro: los archivos descargados permanecen en una capa anterior.
- Usar comandos de otra distribución: APT, APK y DNF no comparten rutas ni opciones.
- Borrar directorios a ciegas: conserva archivos que la aplicación necesite durante la ejecución.
- Confundir la caché del constructor con la capa de la imagen: son datos distintos y se gestionan por separado.
Lecciones relacionadas del curso Docker
- Qué invalida la caché: revisa qué cambios obligan a Docker a ejecutar de nuevo una instrucción.
- Cómo ordenar correctamente un Dockerfile: coloca las instrucciones para aprovechar mejor las capas reutilizables.
- Cómo reducir el tamaño de una imagen: combina la limpieza con otras técnicas de optimización.
Documentación oficial y recursos
Al limpiar cachés de paquetes en Docker en la misma instrucción que las crea, evitas conservar datos temporales en una capa de la imagen. Aplica el comando correspondiente a la distribución, mantén separados los datos del constructor y prueba después que la aplicación sigue disponiendo de todo lo necesario.

