28

我在 AWS ECS 中运行我的 docker 容器。当我尝试执行以下命令从容器中读取日志时,我面临以下错误。

命令:docker logs -f "容器ID"

来自守护程序的错误响应:配置的日志记录驱动程序不支持读取。

欢迎任何可行的解决方案。

4

3 回答 3

9

根据 David Maze 评论的信息,您必须让您的容器使用 awslogs 日志驱动程序运行。

这里是设置介绍。

将日志驱动程序更改为之后,json-file,您可以通过执行获取日志docker logs container-id/name

但还是要注意这一点:

如果使用 Fargate 启动类型,则唯一支持的值是 awslogs。

于 2018-09-29T11:06:34.660 回答
6

您正在使用awslogs日志驱动程序,并且docker logs该驱动程序无法使用命令。

从文档:

docker logs 命令不适用于 json-file 和 journald 以外的驱动程序

日志记录驱动程序的限制

于 2018-11-07T04:17:20.427 回答
1

我以前也遇到过同样的问题。

在我的具体情况下,ECS 中该服务的任务定义将日志配置的 logDriver 设置为fluentd查看下面带圆圈的图像。

在此处输入图像描述

为了解决这个问题,我创建了另一个具有所有相同参数的任务定义,除了我将Log Configuration部分的 Log Driver 保留为default。请注意,如果您单击它,您将看到其他日志驱动程序,包括fluentd

之后,我将服务指向我的 ECS 集群中的此任务定义,现在我可以看到执行命令的日志docker logs <container id>

在此处输入图像描述

于 2020-01-23T16:32:14.390 回答