如何将非 pid 1 进程的日志重定向到dockerlogs,最终目标是将它们重定向到gelf?
docker容器内有 2 个进程:
1) pid 1 进程
2) 在路径写入日志文件的非 pid 1 进程
跟随docker docs 特别是
官方的 nginx 镜像创建了一个从 /dev/stdout 到 /var/log/nginx/access.log 的符号链接,并创建了另一个从 /dev/stderr 到 /var/log/nginx/error.log 的符号链接,覆盖了日志文件并导致日志被发送到相关的特殊设备。
没有帮助。只有pid 1进程日志被重定向到dockerlogs
执行的步骤:
1ln -sf /dev/stdout _path_
在Dockerfile中
2 将更新后的映像作为容器运行。
3仅显示pid 1进程docker logs -f _containerid_
的日志
哪个州
Docker 支持用于存储和/或流式传输主容器进程 (pid 1) 的容器 stdout 和 stderr 日志的不同日志记录驱动程序
所以这可能是看不到非pid 1进程日志的原因。
虽然,仍然不明白为什么ln -sf /dev/stdout /var/log/mysql/error.log创建的符号链接不起作用。