在AWS ECS集群中显示Docker容器日志

4

我在ecs中无法显示来自docker容器的日志。

我的操作步骤如下:
1)ssh进入集群中的EC2实例。
2)docker日志记录我的服务。

然后出现了这条消息:

FATA[0000] Error executing 'logs': Failed to get log configuration: Container 'my-container': Must specify log driver as awslogs 

我想要做的是在控制台中显示日志。
我不明白的是,对于一些容器,命令docker logs可以正常工作。

2个回答

2

打开/etc/docker/daemon.json文件并添加日志驱动程序:

  {
     "log-driver": "awslogs"
  }

并使用sudo systemctl restart docker重新启动docker。


命令systemctl未找到,我正在运行Amazon Linux AMI。 - superphung
@superphung 抱歉。请尝试执行以下命令:sudo service docker restart - amir
我尝试了sudo service docker restart,然后手动启动每个服务。但是当我尝试docker logs一个容器时,我收到了这条消息:Error response from daemon: configured logging driver does not support reading。 - superphung
1
通常需要一个日志组和区域(在此指定),但这是让我走上这条路的答案。 - Michael Davidson

1
在 ECS 中创建任务定义修订版本时,您应选择 docker 日志驱动程序为 json-log,如果想要使用 docker logs container-id 命令查看 docker 日志,则需要获取容器 ID 从 docker ps 命令中获取。

但是,如果您想将 docker 日志推送到 CloudWatch 日志中,则必须选择 aws-logs 作为 docker 日志驱动程序。

对于某些容器,这可能有效,因为它们的任务定义中已将 docker 日志驱动程序设置为 json-file。

如何创建任务定义?参考:https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-task-definition.html

如果您仍然遇到问题,请告诉我。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接