Bueno, las campanas y silbatos adicionales se llaman aislamiento del proceso, un contenedor obtiene su propio espacio de nombres del núcleo del host, lo que significa que el programa en el contenedor no puede intentar leer la memoria del núcleo o comer más RAM de la permitida.
También aísla las pilas de red, por lo que dos procesos pueden escuchar en el puerto 8080 por ejemplo, tendrá que manejar el enrutamiento a nivel de host, no hay magia aquí, pero esto permite manejar el enrutamiento en un lugar y evitar modificar la configuración del proceso para Escucha un puerto libre.
En segundo lugar, un chroot sigue siendo de lectura / escritura, cualquier cambio es permanente, un contenedor acoplable que aufs
se iniciará desde un sistema de archivos limpio cada vez que inicie el contenedor (los cambios se mantienen si lo detiene / inicia IIRC).
Entonces, si bien un contenedor puede considerarse como process namespace
+ chroot
, la realidad es un poco más compleja.