将非PID 1进程的输出重定向到Docker日志



如何将非PID 1过程的日志重定向到 dockerlogs ,最终的目标是将它们重定向到 gelf

docker 容器中有2个进程:

1)PID 1过程

2)非PID 1的过程,该过程写入 path

的记录文件

遵循Docker文档特别是

官方的nginx图像从/dev/stdout创建了一个符号链接,从/var/log/nginx/access.log创建了一个从/dev/stderr到/var/log/log/nginx/error.log,,创建另一个符号链接。覆盖日志文件并导致日志发送到相关的特殊设备。

无济于事。仅将 pid 1 过程日志重定向到 dockerlogs

执行步骤:

1 ln -sf /dev/stdout _path_ in dockerfile

2运行更新的图像作为容器。

3 docker logs -f _containerid_仅显示 pid 1 Process

的日志

还有另一个官方的Docker Source

哪个指出

docker支持用于存储和/或流容器stdout和stderr日志的不同记录驱动程序(pid 1)

因此,也许是不看到非PID 1 Process的日志的原因。

不过,仍然不明白为什么 ln -sf/dev/stdout/var/log/mysql/mysql/error.log 的创建符号链接。

我在主题上也有同样的问题。我解决它的方式,您需要在Docker build(dockerfile)期间运行docker运行时启动" ln -s"。

这是我的shell bash脚本

tail -n 0 -q -F /path/folder/*.log >> /proc/1/fd/1 &

希望帮助

相关内容

  • 没有找到相关文章

最新更新