¿Por qué Docker no ejecuta init como lxc?

¿Por qué Docker no ejecuta init como lxc?

Docker no está ejecutando init. Por lo tanto, los servicios no se inician durante el inicio. Lxc ejecuta init durante lxc-start. Dado que Docker usa lxc, no ejecuta init. ¿Cuáles son las ventajas de no ejecutar init y depender de supervisord para la demonización?

Respuesta1

Docker es uncontenedor de aplicaciones, más centrado en distribuir aplicaciones como contenedores. En esto, la aplicación/proceso en ejecuciónadentroel contenedor es el único que se ejecuta, su proceso de inicio. Si su proceso necesita más aplicaciones (mysql, base de datos mongodb, etc.), no las inicia dentro de su contenedor acoplable administrado por un demonio de inicio, inicia más contenedores acoplables, cada uno dentro del contenedor acoplable.

Puedes probarhttp://phusion.github.io/baseimage-docker/que proporciona un demonio de inicio simple para ejecutar más procesos dentro de la imagen de su ventana acoplable (ésta está basada en Ubuntu) o puede probar LXDhttp://www.ubuntu.com/cloud/lxdpara la tecnología de contenedores se utiliza más como uncontenedor del sistema.

Respuesta2

Esta pregunta se ha planteado como unaasuntoen GitHub, y una solicitud de extracción fusionada para permitir initsu ejecución desde 0.6.x):

docker run $IMAGE /sbin/init

fuente

La razón original por la que no se ejecutó init (no válido desde0.6.x):

al iniciar un nuevo contenedor, Docker Mint se vincula a sí mismo como /sbin/init dentro del contenedor, ocultando el /sbin/init real y en el proceso haciéndolo no disponible para su ejecución.

esta respuestapuede ofrecer más ayuda, yLa guía de Dockerpuede resultar útil.

información relacionada