Saltar al contenido

Contenedores sin Docker: entendiendo namespaces y cgroups desde cero

    Linux y sistemas | unfantasmaenelsistema.com

    Cuando lanzas un contenedor Docker, la magia ocurre en el kernel de Linux, no en Docker. Docker es, en esencia, un frontend conveniente sobre dos primitivas del kernel que existen desde hace más de una década: los namespaces y los cgroups.

    1. La ilusión del aislamiento

    Un contenedor tiene dos dimensiones de aislamiento: namespaces (lo que el proceso ve) y cgroups (lo que el proceso puede usar).

    2. Namespaces: los 8 tipos

    2.1 Crear namespaces con unshare

    2.2 Network Namespace: la red privada

    3. Cgroups: el aislamiento de recursos

    3.1 Cgroups v1 vs v2

    3.2 Trabajar con cgroups v2 directamente

    4. OverlayFS: el sistema de archivos en capas

    5. Herramientas del ecosistema sin Docker

    Conclusión

    Haber construido un contenedor desde cero te da comprensión causal. Cuando algo falla en un entorno de contenedores, ya no es magia negra. Sabes que el PID 1 dentro del contenedor es un proceso real en el host, que la red es un par de interfaces virtuales conectadas por un bridge, y que los límites de memoria son archivos en /sys/fs/cgroup/.

    unfantasmaenelsistema.com | Seguridad, sistemas y todo lo que no debería funcionar (pero funciona)

    Resumen de privacidad

    Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.