docker-compose如何访问Windows宿主机文件?以Loki的Promtail配置为例
Windows Docker Compose环境下Promtail读取宿主机本地日志解决方案
问题原因
运行在Docker容器内的Promtail默认无法直接访问Windows宿主机的本地文件系统路径,直接在Promtail采集配置中填写宿主机的本地磁盘路径会出现无法读取日志的问题。
配置调整步骤
1. 修改docker-compose.yml的promtail服务配置
新增volumes挂载规则,将宿主机存放日志的目录映射到Promtail容器内部的指定路径,配置示例如下:
promtail: image: grafana/promtail:2.4.0 volumes: # 冒号左侧为Windows宿主机日志目录路径,右侧为映射到容器内部的路径 - F:/project/test/src/logs:/test/logs command: -config.file=/etc/promtail/config.yml networks: - loki
2. 修改Promtail采集配置中的路径参数
将采集规则中的__path__参数值修改为上一步中映射到容器内部的路径,调整后的配置示例如下:
- job_name: test static_configs: - targets: - test labels: job: test # 此处填写容器内部的日志路径,匹配该路径下所有.log后缀的日志文件 __path__: "/test/logs/*.log"
核心逻辑
通过Docker的volumes目录挂载能力,将Windows宿主机的日志目录映射到Promtail容器内部的可访问路径,再将Promtail的采集路径对应修改为容器内的路径即可正常读取宿主机日志。
内容的提问来源于stack exchange,提问作者Navneet Garg
相关产品推荐
相关产品推荐

