如何运行Docker检查来获取ECR注册表中图像的图像元数据

mal*_*ash 2 amazon-web-services docker aws-ecs

我拥有对 ECR 注册表的相关访问权限,但是我无法通过运行 Docker 检查命令来获取图像元数据。我正在尝试与

docker inspect ecrregistryurl/dockerimage:imageversion
Run Code Online (Sandbox Code Playgroud)

Adi*_*iii 6

更新

如果您使用的是@muya_提到的最新版本,您可以使用

aws ecr get-login-password | docker login -u AWS --password-stdin https://account-id.dkr.ecr.eu-west-1.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

正如@Tarun 所提到的,我尝试了它,但它没有给我提供与 dockerspect 相同的输出。这是文档中的链接。 https://docs.aws.amazon.com/AmazonECR/latest/userguide/Registries.html#registry_auth_http

#!/bin/bash
TOKEN=$(aws ecr get-authorization-token --output text --query authorizationData[].authorizationToken)
curl -i -H "Authorization: Basic $TOKEN" https://account_id.dkr.ecr.us-west-2.amazonaws.com/v2/redis/manifests/latest 
Run Code Online (Sandbox Code Playgroud)

但检查输出它与 dockerspect 不同。

Docker inspect image_name
Run Code Online (Sandbox Code Playgroud)

此命令将仅检查您的本地映像而不是您的注册表。

您可以采取哪些措施来仅获取提供 ECR 的相关元数据。

aws ecr list-images --repository-name redis
Run Code Online (Sandbox Code Playgroud)

它会给你一个图像标签和图像 ID。

aws ecr describe-images --repository-name redis
Run Code Online (Sandbox Code Playgroud)

这将提供此名为 redis 的存储库中的所有图像和更多详细信息。

现在,对于 docker 检查,首先拉取该图像。

aws ecr get-login --no-include-email
Run Code Online (Sandbox Code Playgroud)

运行该命令的输出。您将使用令牌进行登录。

docker pull account_id.dkr.ecr.us-west-2.amazonaws.com/redis:latest

然后运行

docker pull account_id.dkr.ecr.us-west-2.amazonaws.com/redis:latest
Run Code Online (Sandbox Code Playgroud)

您将会得到您正在寻找的东西。

或者,如果您已经在某个 ec2 实例上运行此映像,然后在该 ec2 实例上运行您将获得所需的结果。

docker inspect account_id.dkr.ecr.us-west-2.amazonaws.com/redis:latest
Run Code Online (Sandbox Code Playgroud)

https://docs.aws.amazon.com/cli/latest/reference/ecr/index.html