配置的日志记录驱动程序不支持读取:Docker
Posted
技术标签:
【中文标题】配置的日志记录驱动程序不支持读取:Docker【英文标题】:configured logging driver does not support reading : Docker 【发布时间】:2019-02-18 22:22:38 【问题描述】:我正在 AWS ECS 中运行我的 docker 容器。当我尝试执行以下命令从容器中读取日志时,我遇到了以下错误。
命令:docker logs -f "容器ID"
来自守护程序的错误响应:配置的日志记录驱动程序不支持读取。
欢迎任何可行的解决方案。
【问题讨论】:
你能分享“docker info”和“docker inspect根据 David Maze 评论的信息,您的容器必须使用 awslogs 日志驱动程序运行。
这里是setting introduction.
将日志驱动程序更改为json-file,
后,您可以通过执行docker logs container-id/name
来获取日志。
但还是要注意这一点:
如果使用 Fargate 启动类型,则唯一支持的值是 awslogs。
【讨论】:
【参考方案2】:您正在使用awslogs
日志驱动程序,而docker logs
命令不适用于该驱动程序。
来自文档:
docker logs 命令不适用于除驱动程序以外的驱动程序 json 文件和日志
limitations of logging drivers
【讨论】:
【参考方案3】:我以前也遇到过同样的问题。
在我的具体情况下,ECS 中该服务的任务定义将日志配置的 logDriver 设置为 fluentd
,请参见下图。
为了解决这个问题,我创建了另一个任务定义,除了我将Log Configuration
部分的日志驱动程序保留为默认之外,所有参数都相同。请注意,如果您单击它,您将看到其他日志驱动程序,包括 fluentd。
之后我将服务指向我的 ECS 集群中的这个任务定义,现在我可以看到执行命令 docker logs <container id>
的日志
【讨论】:
以上是关于配置的日志记录驱动程序不支持读取:Docker的主要内容,如果未能解决你的问题,请参考以下文章
通过配置日志驱动程序将 Docker 容器日志发送到 ELK Stack - 简单方法