Azure CLI : delete all untagged images within a repository in one command

标签 azure azure-cli azure-container-registry

我将 Docker 镜像存储在 Azure 上的私有(private)存储库中。每次我将具有相同标签(例如最新)的图像推送到该存储库时,前一个图像就会变为未标记的,但仍保留在存储库中。这导致存储库中堆积了大量未标记的图像。我想要一个使用 azure cli 的命令来一次性删除所有未标记的图像。

例如,输入以下命令:

az acr 存储库 show-manifests -n myRegistry --repository myRepo

返回了 d24-staging-fuzzy-search-srv 存储库的多个 list :

[ { "摘要": "sha256:blablabla1", “标签”:空, “时间戳”:“t1” }, { "摘要": "sha256:blablabla2", “标签”:空, “时间戳”:“t2” }, { "摘要": "sha256:blablabla3", “标签”:[ “最新的” ], “时间戳”:“t3” }]

我希望在 azure cli 中有一个命令,删除所有具有“null”标签的 mainfest,并保留具有“latest”标签的 mainfest

最佳答案

如果有人仍然想知道完成此操作的单行命令是什么,请使用以下 Bash 脚本:

az acr repository show-manifests -n <registryName> --repository <repositoryName> --query "[?tags[0]==null].digest" -o tsv | xargs -I% az acr repository delete -n <registryName> -t <repositoryName>@% -y

来源:https://learn.microsoft.com/en-us/azure/container-registry/container-registry-faq

标题:如何删除存储库中未被任何标记引用的所有 list ?

关于Azure CLI : delete all untagged images within a repository in one command,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50945163/

相关文章:

sharepoint - SPAppToken(上下文 token )为空

json - 将结果保存到变量时 PowerShell shell 挂起(Azure 管道列表)

azure - 如何在虚拟网络内创建Azure容器注册表?

azure-devops - 无法在 Azure DevOps(发布管道)中获取 Azure 容器注册表的服务连接

azure - 如何仅向一个 Azure 服务总线订阅发送消息?

azure - ARM 模板如何进行身份验证以使用 CI/CD 管道将资源部署到目标服务器?

Android App Insights 在 Debug模式下记录日志

azure - 将文件夹移动到 Azure blob 中的父文件夹

azure - Azure CLI和PowerShell之间的区别

docker - 是否需要使用 Azure 容器注册表才能使用 Azure 容器?