Veo que muchas imágenes de Docker en el repositorio de Docker están hechas con una base de Ubuntu.
Qué significa eso? ¿Cada contenedor incluye una versión reducida del kernel de Linux?
¿Los contenedores se asientan sobre sus propios granos? Pero pensé que los contenedores comparten el núcleo del host (que en algunos casos es boot2docker, una compilación personalizada de Tiny Core Linux y en otros algo como CoreOS).
EDITAR: aclarando un poco la pregunta. Sí, sé que Docker es un contenedor de procesos, no una máquina virtual completa. Pero dado que hay contenedores "Ubuntu" en el registro oficial de Docker Hub y otros sistemas operativos como CentOS, ¿qué significa ejecutar Ubuntu en un contenedor?
Respuesta: Ahh, me di cuenta. Son los procesos terrestres de usuario de Ubuntu, que contienen apt-get y otros procesos de configuración para una compilación de Ubuntu en particular. Del mismo modo para CentOS. Docker no es un proceso único, solo una entrada. Entonces, para estas distribuciones, el punto de entrada es una especie de proceso de inicio que genera otros procesos.
Respuestas:
Docker utiliza el núcleo del sistema operativo host, no hay un núcleo personalizado o adicional dentro del contenedor. Todos los contenedores que se ejecutan en una máquina están compartiendo este núcleo "host".
Wikipedia dice http://en.wikipedia.org/wiki/Docker_(software) que
cgroups, espacios de nombres y LXC son características del kernel de Linux para aislar grupos de procesos; todavía hay un núcleo único, un planificador único y una instancia del administrador de memoria del núcleo.
Boot2docker y CoreOS son solo distribuciones livianas de Linux con algún núcleo de host; se pueden usar para cargar contenedores Docker.
http://boot2docker.io/
http://en.wikipedia.org/wiki/CoreOS
fuente
FROM
una imagen base de Ubuntu cuando el host ya está ejecutando Ubuntu. Para responder la pregunta, debe explicar qué es una imagen base.En casi todos los casos, el núcleo del sistema operativo host se comparte. Para ejecutar un kernel diferente, debe usar la virtualización. Esto es raro y solo se usa cuando es necesario debido a la degradación del rendimiento.
"El contenedor de Docker Engine comprende solo la aplicación y sus dependencias. Se ejecuta como un proceso aislado en el espacio de usuario en el sistema operativo host, compartiendo el núcleo con otros contenedores. Por lo tanto, disfruta de los beneficios de aislamiento y asignación de recursos de las máquinas virtuales, pero es mucho más portátil y eficiente ".
Esto podría ayudar a explicar cómo funciona:
Fuente: https://www.docker.com/whatisdocker/
fuente