如何将非pid 1进程的日志重定向到dockerlogs,最终目标是将其重定向到gelf?
docker容器内有两个进程:
1)pid 1进程
2)非pid 1进程,将日志写入位于path的日志文件中。
参考docker文档,特别是以下内容:
执行了以下步骤:
1 在Dockerfile中运行
3
还有另一个官方docker资源,其中指出:
尽管如此,仍然不理解通过ln -sf /dev/stdout /var/log/mysql/error.log创建的符号链接为什么没有起作用。
1)pid 1进程
2)非pid 1进程,将日志写入位于path的日志文件中。
参考docker文档,特别是以下内容:
以上内容并没有起作用,只有pid 1进程的日志被重定向到dockerlogs。官方nginx图像在/dev/stdout和/var/log/nginx/access.log之间创建符号链接,并在/dev/stderr和/var/log/nginx/error.log之间创建另一个符号链接,覆盖日志文件并导致日志被发送到相应的特殊设备。
执行了以下步骤:
1 在Dockerfile中运行
ln -sf /dev/stdout _path_
2 使用更新后的镜像作为容器运行。3
docker logs -f _containerid_
只显示pid 1进程的日志还有另一个官方docker资源,其中指出:
这可能是看不到非pid 1进程日志的原因。Docker支持不同的日志记录驱动程序,用于存储和/或流式传输主容器进程(pid 1)的标准输出和标准错误输出日志。
尽管如此,仍然不理解通过ln -sf /dev/stdout /var/log/mysql/error.log创建的符号链接为什么没有起作用。