Recién estoy comenzando con Docker y richt, ahora estoy tratando de descubrir cómo configurar mi primer entorno Apache 2 / PHP dockerizado. Hasta ahora he estado usando máquinas virtuales Linux completas, donde usé archivos de registro que se escriben en / var / log / apache2, luego uso "logrotate" para saltar a un nuevo archivo cada día.
Los archivos de registro se utilizaron principalmente para la detección inmediata de errores (es decir, iniciar sesión en el servidor y usar menos para abrir los archivos actuales access.log y error.log) y para fail2ban.
Si estoy en lo cierto, eso no es posible en un entorno Docker, principalmente porque generalmente no puede iniciar sesión en los contenedores para echar un vistazo a los registros. También se perderán registros si se retira el contenedor.
Entonces: ¿Cuál es el método más común para trabajar con / emular / reemplazar access.log / error.log en esa situación? ¿Cuáles son las soluciones comunes para los entornos de producción y desarrollo?
Mis ideas hasta ahora incluyen el uso de un recurso compartido NFS (lento y puede causar colisiones de nombre de archivo si no es cuidadoso), y logstash (¿no estoy seguro de si vale la pena el esfuerzo y es factible para sitios más pequeños o incluso entornos de desarrollo?) Pero estoy seguro de que las personas inteligentes ¿Has encontrado mejores soluciones?
No estoy seguro si hace la diferencia, pero actualmente estoy basando mi imagen de Docker en php: 5.6-apache .
docker attach <container name>
es la buena manera de ver stdout desde su contenedor. Pero tenga en cuenta que si hace ctrl + d o ctrl + c, TERMINARÁ (sigkill) su tarea en curso. Por lo tanto, debe separarlo correctamente utilizando la tecla de escapectrl+p+q
. Si solo quieres usar shell en tu contenedor, prefiero usar elexec
comando anterior.