Saltar al contenido

Iniciar servicios automáticamente en Docker Container

Bienvenido a proyecto online, aquí hallarás la solucíon a lo que buscabas.

Solución:

EDITAR: he aprendido mucho sobre Docker desde que publiqué originalmente esta respuesta. “Iniciar servicios automáticamente en contenedores de Docker” no es un buen patrón de uso para Docker. En su lugar, use algo como flota, Kubernetes o incluso Monit/SystemD/Upstart/Init.d/Cron para iniciar automáticamente los servicios que se ejecutan dentro de los contenedores de Docker.

RESPUESTA ORIGINAL: Si está iniciando el contenedor con el comando /bin/bashentonces puede lograr esto de la manera descrita aquí: https://stackoverflow.com/a/19872810/2971199

Entonces, si está comenzando el contenedor con docker run -i -t IMAGE /bin/bash y si desea iniciar apache2 automáticamente cuando se inicia el contenedor, edite /etc/bash.bashrc en el recipiente y agregar /usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf (o cualquiera que sea su comando de inicio apache2) a una nueva línea al final del archivo.

Guarde los cambios en su imagen y reiníciela con docker run -i -t IMAGE /bin/bash y encontrará apache2 ejecutándose cuando lo adjunte.

Una opción que podría usar sería usar un administrador de procesos como Supervisord para ejecutar múltiples procesos. Alguien logró esto con sshd y mongodb: https://github.com/justone/docker-mongodb

Supongo que no puedes. Lo que puede hacer es crear una imagen usando un Dockerfile y definir un CMD en eso, que se ejecutará cuando se inicie el contenedor. Consulte la documentación del constructor para conocer los aspectos básicos (https://docs.docker.com/reference/builder/) y consulte Ejecutar un servicio automáticamente en un contenedor acoplable para obtener información sobre cómo mantener su servicio en ejecución.

No necesita automatizar esto usando un Dockerfile. También puede crear la imagen a través de una confirmación manual como lo hace y ejecutarla desde la línea de comandos. Luego, proporciona el comando que debe ejecutar (que es exactamente lo que hace Dockerfile CMD). También puede anular el CMD de Dockerfiles de esta manera: solo se ejecutará el CMD más reciente, que es el comando de la línea de comandos si inicia el contenedor con uno. Lo básico docker run -i -t base /bin/bash El comando de la documentación es un ejemplo. Si su comando se vuelve demasiado largo, puede crear un script de conveniencia, por supuesto.

Ten en cuenta recomendar este post si te fue de ayuda.

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



Utiliza Nuestro Buscador

Deja una respuesta

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