我刚刚开始使用Docker和Richt,现在我想弄清楚如何设置我的第一个Dockerized Apache 2 / PHP环境。到目前为止,我一直在使用完整的Linux VM,在其中我使用了将日志文件写入/ var / log / apache2的日志文件,然后每天使用“ logrotate”跳至一个新文件。
日志文件主要用于即时错误检测(即登录服务器,并较少使用它来打开当前的access.log和error.log文件)和fail2ban。
如果我是正确的,那在Docker环境中是不可行的-主要是因为您通常无法登录到容器来查看日志。如果删除容器,日志也会丢失。
因此:在这种情况下,使用/模拟/替换access.log / error.log的最常用方法是什么?生产和开发环境的常见解决方案是什么?
到目前为止,我的想法包括使用NFS共享(速度慢,如果不小心可能会导致文件名冲突)和logstash(不确定是否值得这样做,并且对于较小的站点甚至开发环境是否可行?),但是我敢肯定,聪明的人有更好的解决方案?
不知道它是否有所作为,但是目前我将Docker映像基于php:5.6-apache。
docker attach <container name>
是从容器查看stdout的好方法。但是请注意,如果您执行ctrl + d或ctrl + c,它将终止(sigkill)您正在进行的任务。因此,您必须使用转义键正确分离它ctrl+p+q
。如果您只想封装到您的容器中,我更喜欢使用exec
上面的命令。