将非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的符号链接没有工作。

Interesting Posts