Soporte de glibc y musl en las Docker Hardened Images
Las Docker Hardened Images (DHI) están construidas para priorizar la seguridad sin
sacrificar la compatibilidad con el ecosistema de software libre y empresarial más amplio.
Un aspecto clave de esta compatibilidad es el soporte para las librerías estándar de Linux
más comunes: glibc y musl.
¿Qué son glibc y musl?
Cuando ejecutas contenedores basados en Linux, la librería C de la imagen juega un papel clave en la forma en que las aplicaciones interactúan con el sistema operativo. La mayoría de las distribuciones modernas de Linux dependen de una de las siguientes librerías C estándar:
glibc(GNU C Library): La librería C estándar en distribuciones principales como Debian, Ubuntu y Red Hat Enterprise Linux. Cuenta con un amplio soporte y normalmente se considera la opción más compatible en diversos lenguajes, frameworks y software empresarial.musl: Una alternativa ligera aglibc, comúnmente utilizada en distribuciones mínimas como Alpine Linux. Aunque ofrece tamaños de imagen más pequeños y beneficios de rendimiento,muslno siempre es totalmente compatible con el software que esperaglibc.
Compatibilidad de DHI
Las imágenes DHI están disponibles tanto en variantes basadas en glibc (por ejemplo, Debian)
como basadas en musl (por ejemplo, Alpine). Para aplicaciones empresariales y entornos de
ejecución de lenguajes donde la compatibilidad es crítica, Docker recomienda utilizar imágenes
DHI basadas en glibc.
Qué elegir, ¿glibc o musl?
Las Docker Hardened Images están disponibles tanto en variantes basadas en glibc (Debian) como basadas en musl (Alpine), lo que te permite elegir la opción que mejor se adapte a tu carga de trabajo.
Elige imágenes basadas en Debian (glibc) si:
- Necesitas una amplia compatibilidad con cargas de trabajo empresariales, entornos de ejecución de lenguajes o software propietario.
- Utilizas ecosistemas como .NET, Java o Python con extensiones nativas que dependen de
glibc. - Quieres minimizar el riesgo de errores en tiempo de ejecución debido a incompatibilidades de librerías.
Elige imágenes basadas en Alpine (musl) si:
- Quieres una huella mínima con tamaños de imagen más pequeños y una superficie de ataque reducida.
- Estás construyendo una pila de aplicaciones personalizada o estrechamente controlada donde las dependencias son conocidas y han sido probadas.
- Priorizas la velocidad de inicio y los despliegues ligeros sobre la máxima compatibilidad.
Si tienes dudas, comienza con una imagen basada en Debian para garantizar la compatibilidad, y evalúa Alpine una vez que tengas la seguridad de cuáles son las dependencias de tu aplicación.