删除Google Cloud Registry上的未标记图像

Rob*_*cok 5 google-cloud-platform google-container-registry

当我们反复gcr.io使用相同的图像名称和版本(标签)时,会出现大量未标记的图像.
是否有一种简单的方法可以从项目中删除所有未标记的图像,或者至少删除单个图像,以避免产生存储成本?

jsa*_*and 9

gcloud container images list-tags gcr.io/project-id/repository --format=json --limit=unlimited 将为您提供一个易于消耗的json blob信息,用于回购中的图像(例如带有相关标签的摘要).

为了列举缺少标签的所有摘要:

gcloud container images list-tags gcr.io/project-id/repository --filter='-tags:*' --format='get(digest)' --limit=unlimited

您可以使用以下内容进行迭代和删除: gcloud container images delete --quiet gcr.io/project-id/repository@DIGEST


小智 6

将它们与awk和xargs粘合在一起时非常方便

gcloud container images list-tags gcr.io/${PROJECT_ID/${IMAGE} --filter='-tags:*' --format='get(digest)' --limit=unlimited | awk '{print "gcr.io/${PROJECT_ID}/${IMAGE}@" $1}' | xargs gcloud container images delete --quiet


Ben*_*nos 6

之前的一句台词对我来说不起作用。我现在正在使用这个:

  • 删除给定 PROJECT_ID 和 IMAGE 的所有未标记图像
  • 使用 Xargs -I,它创建一个令牌(在本例中称为 {arg})
gcloud container images list-tags gcr.io/${PROJECT_ID}/${IMAGE} \
    --filter='-tags:*' --format='get(digest)' --limit=unlimited |\
  xargs -I {arg} gcloud container images delete \
    "gcr.io/${PROJECT_ID}/${IMAGE}@{arg}" --quiet
Run Code Online (Sandbox Code Playgroud)