为什么 Fluent-bit 使用 varlibdockercontainers 卷?

Why does Fluent-bit use the varlibdockercontainers volume?

有一个用于部署 daemonset 的官方清单 https://raw.githubusercontent.com/fluent/fluent-bit-kubernetes-logging/master/output/elasticsearch/fluent-bit-ds.yaml

第 49 行定义了音量 varlibdockercontainers

不明白为什么Fluent-bit需要从/var/lib/docker/containers文件夹中读取数据。

I don't understand why the Fluent-bit needs to read data from the folder /var/lib/docker/containers.

因为那是 docker 在使用 json-file logging driver, which is (AFAIK) the default. There are more details

时存储其 ${container_id}-json.log 文件的地方

因此,为了流畅地传输日志,它(有效地)tail -f $the_log_filename | jq -r .log 并且这些是容器的日志。如果您想查看 actual 实现,它似乎在 docker.h 及其 docker.c peer