Saltar al contenido

Inicie el servicio usando systemctl dentro del contenedor docker

Presta atención porque en esta división vas a encontrar la solución que buscas.Esta crónica fue aprobado por nuestros expertos para asegurar la calidad y veracidad de nuestro contenido.

Cuando tu lo hagas docker run con bash como comando, el sistema de inicio (por ejemplo, SystemD) no se inicia (ni tampoco su secuencia de comandos de inicio, ya que el comando que pasa anula el CMD en el Dockerfile). Intenta cambiar el comando que usas para /sbin/initinicie el contenedor en modo daemon con -dy luego mire alrededor en un caparazón usando docker exec -it sh.

Docker está diseñado en torno a la idea de un único servicio/proceso por contenedor. Aunque definitivamente admite la ejecución de múltiples procesos en un contenedor y de ninguna manera le impide hacerlo, eventualmente se encontrará con áreas en las que múltiples servicios en un contenedor no se corresponden con lo que Docker o las herramientas externas esperan. Cosas como pasar a la escala de servicios o usar Docker swarm entre hosts solo admiten el concepto de un servicio por contenedor.

Docker Compose le permite componer varios contenedores en una sola definición, lo que significa que puede usar más contenedores preconstruidos estándar (httpd, mariadb) en lugar de construir uno propio. Las definiciones de composición se asignan a los servicios de Docker Swarm con bastante facilidad. Consulte también Kubernetes y Marathon/Mesos para administrar grupos de contenedores como servicio.

Gestión de procesos en Docker

Es posible ejecutar systemd en un contenedor pero requiere --privileged acceso al host y al /sys/fs/cgroup volumen montado, por lo que puede no ser la mejor opción para la mayoría de los casos de uso.

El s6-overlay El proyecto proporciona un sistema de gestión de procesos más amigable con Docker usando s6.

Es bastante raro que realmente necesite acceso ssh a un contenedor, pero si ese es un requisito difícil, entonces tendrá que construir sus propios contenedores y usar un administrador de procesos.

Puede evitar ejecutar un daemon systemd dentro de un contenedor docker por completo. Incluso puede evitar escribir un script start.sh especial; ese es otro beneficio cuando se usa el script docker-systemctl-replacement.

El docker systemctl.py puede analizar los archivos *.service normales para saber cómo iniciar y detener los servicios. Puede registrarlo como el CMD de una imagen, en cuyo caso buscará todos los servicios habilitados para systemctl, que se iniciarán y detendrán en el orden correcto.

El conjunto de pruebas actual incluye casos de prueba para la pila LAMP, incluidos centos, por lo que debería funcionar bien específicamente en su configuración.

Si guardas alguna sospecha o forma de mejorar nuestro escrito puedes ejecutar un exégesis y con mucho gusto lo ojearemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *