Imágenes mínimas o distroless
Las imágenes mínimas, a veces llamadas imágenes distroless, son imágenes de contenedor desprovistas de componentes innecesarios como gestores de paquetes, shells o incluso la distribución del sistema operativo subyacente. Las Docker Hardened Images (DHI) adoptan este enfoque minimalista para reducir las vulnerabilidades y aplicar una entrega segura de software. Las Docker Official Images y las Docker Verified Publisher Images siguen mejores prácticas similares de minimalismo y seguridad, pero es posible que no estén tan simplificadas para garantizar la compatibilidad con una gama más amplia de casos de uso.
¿Qué son las imágenes mínimas o distroless?
Las imágenes de contenedor tradicionales incluyen un sistema operativo completo, a menudo más de lo necesario para ejecutar una aplicación. En cambio, las imágenes mínimas o distroless solo incluyen:
- El binario de la aplicación
- Sus dependencias de tiempo de ejecución (por ejemplo, libc, Java, Python)
- Cualquier configuración o metadato requerido explícitamente
Normalmente excluyen:
- Herramientas del sistema operativo (por ejemplo,
ls,ps,cat) - Shells (por ejemplo,
sh,bash) - Gestores de paquetes (por ejemplo,
apt,apk) - Utilidades de depuración (por ejemplo,
curl,wget,strace)
Las Docker Hardened Images se basan en este modelo, lo que garantiza una superficie de tiempo de ejecución más pequeña y segura.
Qué obtienes
| Beneficio | Descripción |
|---|---|
| Superficie de ataque más pequeña | Menos componentes significan menos vulnerabilidades y menor exposición a las CVE |
| Inicio más rápido | Los tamaños de imagen más pequeños se traducen en tiempos de descarga e inicio más rápidos |
| Seguridad mejorada | La falta de un shell y de un gestor de paquetes limita lo que los atacantes pueden hacer en caso de una vulnerabilidad |
| Mayor cumplimiento | Más fáciles de auditar y verificar, especialmente con SBOM y atestaciones |
Abordar los retos comunes
Las imágenes mínimas y distroless ofrecen sólidos beneficios de seguridad, pero pueden cambiar la forma en que trabajas con los contenedores. Las Docker Hardened Images están diseñadas para mantener la productividad a la vez que mejoran la seguridad.
| Preocupación | Cómo ayudan las Docker Hardened Images |
|---|---|
| Depuración | Las imágenes endurecidas excluyen shells y herramientas de CLI por defecto. Utiliza Docker Debug para adjuntar temporalmente un contenedor sidecar de depuración para la resolución de problemas sin modificar el contenedor original. |
| Familiaridad | DHI admite múltiples imágenes base, incluidas las variantes de Alpine y Debian, para que puedas elegir un entorno familiar mientras te beneficias de las prácticas de endurecimiento. |
| Flexibilidad | La inmutabilidad en tiempo de ejecución ayuda a proteger tus contenedores. Utiliza construcciones en varias etapas (multi-stage builds) y CI/CD para controlar los cambios, y opcionalmente utiliza imágenes base enfocadas en el desarrollo durante esta fase. |
Al equilibrar el minimalismo con herramientas prácticas, las Docker Hardened Images dan soporte a los flujos de trabajo de desarrollo modernos sin comprometer la seguridad ni la confiabilidad.
Mejores prácticas para utilizar imágenes mínimas
- Utiliza construcciones en varias etapas (multi-stage builds) para separar los entornos de construcción y de ejecución
- Valida el comportamiento de la imagen utilizando pipelines de CI, no mediante inspección interactiva
- Incluye explícitamente las dependencias específicas del entorno de ejecución en tu Dockerfile
- Utiliza Docker Scout para supervisar continuamente las CVE, incluso en imágenes mínimas
Al adoptar imágenes mínimas o distroless a través de las Docker Hardened Images, obtienes un entorno de contenedores más seguro, predecible y listo para producción, diseñado para la automatización, la claridad y la reducción de riesgos.