【发布时间】:2019-07-08 21:17:18
【问题描述】:
我想确保任务正在运行最新的图像。
在容器中,我可以通过调用http://169.254.170.2/v2/metadata 来获取 docker 镜像 ID(例如 183f9552f0a5),但是我正在寻找一种在我的笔记本电脑上获取它的方法。
这可以通过 AWS CLI 或 SDK 实现吗?
【问题讨论】:
标签: amazon-web-services aws-fargate
我想确保任务正在运行最新的图像。
在容器中,我可以通过调用http://169.254.170.2/v2/metadata 来获取 docker 镜像 ID(例如 183f9552f0a5),但是我正在寻找一种在我的笔记本电脑上获取它的方法。
这可以通过 AWS CLI 或 SDK 实现吗?
【问题讨论】:
标签: amazon-web-services aws-fargate
您首先需要使用 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。有可能获得吗?
describe-images 来检索给定存储库名称和标签的图像 ID。其他 repos 可以提供类似的 API 来检索图像 ID,因为我相信它只是图像本身的 SHA 摘要。
latest 推送映像 2. 在 ECS 中部署映像 3. 重建映像并再次以 latest 推送 4. 获取映像来自 ECS/ECR 的 URL 和 SHA 摘要 在这种情况下,CLI 将报告新的摘要。我需要 ECS 正在运行的映像的确切摘要。