No entiendo la diferencia entre docker y chroot. Sí, es agradable en términos del embalaje del registro. Pero de alguna manera tengo la sensación de que es simplemente chroot con campanas y silbatos adicionales.
Sé que me estoy perdiendo algo. Sería genial saber cómo son diferentes y la necesidad de Docker si Chroot podría hacer algo similar.
No pude encontrar este Chroot Vs Docker lo suficientemente claro tampoco.
docker
linux
containers
Vipin Menon
fuente
fuente
Respuestas:
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.fuente
aufs
ya no se usa por defecto. Ahora esoverlay2
Sí, absolutamente hay más que
chroot
hasta el punto de que tienen poco o nada en común.docker image prune
...)docker exec
ellos, etc.)docker container ...
)docker-compose
o enjambre como actualizaciones de bajo perfil a mucho más.fuente