linux-kernel - machine - how docker works
¿Cómo puede Docker ejecutar distros con diferentes núcleos? (1)
¿Cómo se puede ejecutar la ventana acoplable en un host Debian, tal vez un OpenSUSE en un contenedor?
Debido a que el kernel es el mismo y será compatible con el motor Docker para ejecutar todas esas imágenes de contenedor: el kernel host debe ser 3.10 o más, pero su lista de llamadas al sistema es bastante estable.
Consulte " Contenedores de arquitectura: por qué es importante entender el espacio del usuario frente al espacio del kernel ":
- Las aplicaciones contienen lógica de negocios, pero se basan en llamadas al sistema.
- Una vez que se compila una aplicación, el conjunto de llamadas del sistema que utiliza una aplicación (es decir, se basa) se integra en el binario (en idiomas de nivel superior, este es el intérprete o JVM).
- Los contenedores no abstraen la necesidad de que el espacio del usuario y el espacio del kernel compartan un conjunto común de llamadas al sistema.
- En un mundo en contenedores, este espacio de usuario se empaqueta y se envía a diferentes hosts, desde computadoras portátiles hasta servidores de producción.
- En los próximos años, esto creará desafíos.
De vez en cuando se agregan nuevas llamadas al sistema, y las llamadas antiguas al sistema son obsoletas; Esto se debe tener en cuenta al pensar en el ciclo de vida de su infraestructura de contenedores y las aplicaciones que se ejecutarán dentro de ella.
Consulte también " ¿Por qué la versión del kernel no coincide con la versión de Ubuntu en un contenedor Docker? ":
No hay kernel dentro de un contenedor. Incluso si instala un kernel, no se cargará cuando se inicie el contenedor. El propósito mismo de un contenedor es aislar procesos sin la necesidad de ejecutar un nuevo kernel.
¿Cómo se puede ejecutar la ventana acoplable en un host de Debian, tal vez un OpenSUSE en un contenedor? Utiliza diferentes kernel, con módulos separados. También las versiones anteriores de Debian han usado núcleos más antiguos, así que, ¿cómo se puede ejecutar en una versión del kernel 3.10+? Los núcleos más antiguos solo tienen funciones integradas más antiguas, ¿cómo puede una distribución antigua administrar nuevas funciones? ¿Qué es "el truco" en él?