【发布时间】:2019-08-20 21:13:05
【问题描述】:
我一直在使用 Docker Python API 和 Boto3 构建映像并将它们推送到 Amazon ECR。我很难确定的是如何确定我构建的图像是否已经存在于 ECR 中?我可以像这样使用 Boto3 库:
import boto3
import botocore
client = boto3.client('ecr')
images = client.list_images(repositoryName=repo_name, registryId=repo_id)
这会给我一个摘要列表,但它们不是图像摘要。它们是 Docker 存储库摘要(这是图像的摘要 + 其清单)。因此,如果我在本地构建映像,则无法使用它来检查该映像是否已存在并带有 Amazon ECR 上的标签。
import docker
client = docker.from_env()
image = client.build(path=docker_dir)
sha256 = image[0].id # <--This Sha sum is for the image, different from repository
是否可以在给定存储库中获取图像的实际图像摘要而无需提取图像?
【问题讨论】:
-
我认为如果你对 ECR 清单进行哈希处理,你应该得到与
sha256相同的值。我不熟悉 ECR,但最近使用 dockerhub 和 Google Container Registry (GCR) 为我自己的教育探索了这一点:medium.com/google-cloud/…
标签: python docker docker-registry amazon-ecr