Ya no tienes que buscar más por otras webs porque llegaste al lugar correcto, tenemos la respuesta que quieres hallar y sin complicaciones.
Solución:
No es necesario adjuntar o ejecutar (que es realmente una función de depuración de todos modos)
Puedes usar docker cp
para copiar una versión local de su httpd.conf
al contenedor. (De esa manera, puede modificar el archivo desde la comodidad de su entorno local)
docker cp httpd.conf :/path/to/httpd.conf
Una vez hecho esto, puede enviar una señal USR1 para solicitar un reinicio correcto (ver docker kill
sintaxis):
docker kill --signal="USR1"
Reemplazar
por la identificación del contenedor o el nombre que ejecuta Apache.
Eso solo funcionará si el proceso principal lanzado por su contenedor es
CMD ["apachectl", "-DFOREGROUND"]
Ver más en “Docker: Cómo reiniciar un servicio que se ejecuta en Docker Container”
Ingrese un contenedor abriendo un shell bash:
docker exec -it containerName bash
Supongo que es mejor que simplemente vuelva a cargar la configuración de apache y no reinicie apache. Pero no seguiría esta ruta y simplemente modificaría Dockerfile y reconstruiría y volvería a ejecutar la imagen.
editar para enlace: https://docs.docker.com/engine/reference/commandline/exec/
Para actualizar las configuraciones de Apache necesita:
-
Reemplace las configuraciones de Apache.
-
Si tiene una carpeta de configuración asignada desde fuera del contenedor, debe actualizar las configuraciones fuera del contenedor.
-
Si sus configuraciones de Apache están almacenadas dentro del contenedor, deberá ejecutar algo como esto:
docker cp httpd.conf YOUR_CONTAINER_NAME:/path/to/httpd.conf
-
-
Hacer Reinicio elegante de Apache:
sudo docker exec -it YOUR_CONTAINER_NAME apachectl graceful