将非pid 1进程的输出redirect到docker日志
如何将非pid 1进程的日志redirect到dockerlogs ,最终目标是将其redirect到gelf ?
docker集装箱内有两个进程:
1)pid 1进程
2)在path上写入日志文件的非pid 1进程
以下docker文档具体而言
官方的nginx镜像创build了从/ dev / stdout到/var/log/nginx/access.log的符号链接,并创build了从/ dev / stderr到/var/log/nginx/error.log的另一个符号链接,覆盖了日志文件并导致日志被发送到相关的特殊设备。
没有帮助。 只有pid 1进程日志被redirect到dockerlogs
执行的步骤:
1在Dockerfile中 ln -sf /dev/stdout _path_
_path_
2运行更新的图像作为容器。
3 docker logs -f _containerid_
只显示pid 1进程的日志
还有另一个官方的docker来源
哪个状态
Docker支持用于存储和/或stream化主容器进程(pid 1)的容器stdout和stderr日志的不同日志logging驱动程序,
所以这可能是没有看到非PID 1进程日志的原因。
虽然,仍然不明白为什么通过ln -sf / dev / stdout /var/log/mysql/error.log创build的符号链接没有工作。