如何在 ECS 代理容器上设置 docker 标签?

Posted

技术标签:

【中文标题】如何在 ECS 代理容器上设置 docker 标签?【英文标题】:How to set docker labels on ECS agent container? 【发布时间】:2018-06-29 08:50:53 【问题描述】:

在 AWS ECS 集群中,每个集群实例都将 ecs-agent [1] 作为 docker 容器运行。在该容器旁边,我也将 datadog-agent [2] 作为容器运行。 datadog-agent 监控所有其他容器并将它们的日志发送到 DataDog。为了让每个容器的日志按名称标记,我为每个具有相应名称的容器添加了一个特定的泊坞窗标签 [3]。但是,我无法将 docker 标签添加到 ecs-agent 本身。

有没有办法将自定义 docker 标签添加到 ecs-agent 容器?

[1] - https://github.com/aws/amazon-ecs-agent

[2] - https://github.com/DataDog/datadog-agent

[3] - https://docs.datadoghq.com/logs/log_collection/docker/

【问题讨论】:

【参考方案1】:

您如何启动 ecs-agent 容器?什么是 docker run 命令?你试过像下面这样吗?。

sudo docker run --name ecs-agent \
--detach=true \
--restart=on-failure:10 \
--volume=/var/run:/var/run \
--volume=/var/log/ecs/:/log \
--volume=/var/lib/ecs/data:/data \
--volume=/etc/ecs:/etc/ecs \
--net=host \
--env-file=/etc/ecs/ecs.config \
--label=myLabelName=amazon-ecs-agent \
amazon/amazon-ecs-agent:latest

【讨论】:

ecs-agent 容器正在由 ECS 优化 AMI 上的预安装服务启动。我正在寻找发出此类命令的位置,或者定义它的配置。 Amazon ECS AMI 正在使用 github.com/aws/amazon-ecs-init 库来启动 ecs-agent docker 容器。根据他们编写的 docker 客户端代码,它似乎不支持 ecs-agent 的任何标签。 github.com/aws/amazon-ecs-init/blob/master/ecs-init/docker/… 。我会推荐这个 github 项目或 amazon-ecs-agent 项目的功能请求,应该可以帮助您满足您的需求。不过,这是一个合理的要求。

以上是关于如何在 ECS 代理容器上设置 docker 标签?的主要内容,如果未能解决你的问题,请参考以下文章

如何更新在 Amazon ECS 上运行的 docker 容器

如何给docker设置http代理

我们可以在 AWS ECS docker 容器上挂载 EFS 吗?

在ECS上使用来自pulumi的私人码头登记处的图像

如何使用 docker-compose.yml 和 ecs-cli 将 EBS 卷附加到我的容器

在 AWS ECS 中将带有卷参数的 docker 容器作为任务定义或服务运行