如何使用 CLI/SDK 获取 Fargate 任务的 docker 镜像 ID?
Posted
技术标签:
【中文标题】如何使用 CLI/SDK 获取 Fargate 任务的 docker 镜像 ID?【英文标题】:How do I get the docker image ID of a Fargate task using the CLI/SDK? 【发布时间】:2019-07-08 21:17:18 【问题描述】:我想确保任务正在运行最新的图像。
在容器中,我可以通过调用http://169.254.170.2/v2/metadata
来获取 docker 镜像 ID(例如 183f9552f0a5
),但是我正在寻找一种在我的笔记本电脑上获取它的方法。
这可以通过 AWS CLI 或 SDK 实现吗?
【问题讨论】:
【参考方案1】:您首先需要使用 describe_tasks
获取任务的任务定义 ARN。如果您已经知道 ARN,则可以跳过此步骤。
aws ecs describe-tasks --tasks TASK_ARN
然后就可以使用describe_task_definition
获取图片名称了。
aws ecs describe-task-definition --task-definition TASKDEF_ARN
【讨论】:
aws ecs describe-task-definition --task-definition TASKDEF_ARN | jq .taskDefinition.containerDefinitions[].image
显示了像 XXXXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/sinatra2:latest
这样的图像 URL,但我正在寻找的是像 183f9552f0a5
这样的 docker 图像 ID。有可能获得吗?
是的,我现在明白了,这就是您所要求的。如果图像在 ECR 中,您可以使用 describe-images
来检索给定存储库名称和标签的图像 ID。其他 repos 可以提供类似的 API 来检索图像 ID,因为我相信它只是图像本身的 SHA 摘要。
我正在使用 ECR,但考虑这种情况: 1. 以latest
推送映像 2. 在 ECS 中部署映像 3. 重建映像并再次以 latest
推送 4. 获取映像来自 ECS/ECR 的 URL 和 SHA 摘要 在这种情况下,CLI 将报告新的摘要。我需要 ECS 正在运行的映像的确切摘要。
我觉得你运气不好。我会向 AWS 提出功能请求。
我正试图弄清楚同样的事情。以上是关于如何使用 CLI/SDK 获取 Fargate 任务的 docker 镜像 ID?的主要内容,如果未能解决你的问题,请参考以下文章
AWS Fargate 任务抛出 Asm 获取用户名:AuthorizationData 格式错误,为空字段