如何将日志从 docker 容器转发到主机 journald/syslog 服务?
Posted
技术标签:
【中文标题】如何将日志从 docker 容器转发到主机 journald/syslog 服务?【英文标题】:How to forward logs from docker containers to host journald/syslog service? 【发布时间】:2018-04-24 02:19:36 【问题描述】:我想将所有日志从 docker postgresql 容器发送到我的主机日志服务。
即我希望能够使用 tail -f /var/logs/messages 或 journald -f
在主机上读取 docker 容器日志这是我的 docker-compose 配置:
postgres:
restart: unless-stopped
image: postgres:9.6
ports:
- "5432:5432"
logging:
driver: syslog
options:
syslog-address: "udp://127.0.0.1:514"
我一直在尝试不同的解决方案,但每次我从 docker 收到错误:
postgres_1 | WARNING: no logs are available with the 'syslog' log driver
我无法查看主机上的日志。
我不确定,我做错了什么?
提前谢谢你
【问题讨论】:
这似乎是 docker-compose 问题,但我不完全确定 【参考方案1】:目前,docker-compose 不支持除 json-file 和 journald https://github.com/docker/compose/blob/master/compose/container.py#L173以外的任何日志驱动
但是 journald 仍然没有向主机发布任何内容,它只是将所有内容打印到屏幕上,而没有 -d 选项。我认为这是你无法改变的内在行为
【讨论】:
以上是关于如何将日志从 docker 容器转发到主机 journald/syslog 服务?的主要内容,如果未能解决你的问题,请参考以下文章