如何从Azure容器注册表中删除图像

rgo*_*esf 13 azure docker-registry azure-container-registry

有没有办法只删除特定的标签?我只找到了一种使用REST/cli-acr删除整个注册表的方法

谢谢

chr*_*bel 7

您可以使用Azure CLI 2.0从具有给定标记的存储库中删除图像:

az acr repository delete -n MyRegistry --repository MyRepository --tag MyTag

  • MyRegistry 是Azure容器注册表的名称
  • MyRepository 是存储库的名称
  • MyTag 表示要删除的标记.

您也可以通过省略来选择删除整个存储库--tag MyTag.有关该az acr repository delete命令的更多信息,请访问:https://docs.microsoft.com/en-us/cli/azure/acr/repository#delete


小智 6

我们正在加强本月晚些时候GA发布的注册表.我们推迟了所有新功能,同时我们专注于性能,可靠性和其他天蓝色数据中心,通过GA在所有公共数据中心提供ACR.我们将在以后的版本中提供图像和标签的删除.我们开始使用https://github.com/Azure/acr/来跟踪功能和错误.删除在此处捕获:https://github.com/Azure/acr/issues/33

谢谢你的反馈,史蒂夫


D4D*_*ave 5

我遇到了类似的问题,我想从存储库中删除历史图像,因为我们的配额已达到 100%

我可以通过在 Azure CLI 2.0 中使用以下命令来完成此操作。该过程执行以下操作:获取标签列表,使用 grep 过滤它并使用 sed 清理它,然后将其传递给删除命令。

获取给定存储库的所有标签

az acr repository show-tags -n [registry] --repository [repository] 
Run Code Online (Sandbox Code Playgroud)

获取以特定输入开头的所有标记,并将其通过管道传递给 sed,这将删除尾随逗号

grep \"[starts with] | sed 's/,*$//g'
Run Code Online (Sandbox Code Playgroud)

使用 xargs,将输出分配给变量 X 并将其用作标签。

--manifest :删除标签引用的清单。这还会删除任何关联的图层数据和引用清单的所有其他标签。

--yes -y : 不提示确认。

xargs -I X az acr repository delete -n [registry] --repository [repository] --tag X --manifest --yes
Run Code Online (Sandbox Code Playgroud)

例如registry = myRegistry,repository = myRepo,我想删除以标签名“test”开头的所有标签(这包括test123,testing等)

az acr repository show-tags -n myRegistry --repository myRepo | grep \"test | sed 's/,*$//g' | xargs -I X az acr repository delete -n myRegistry --repository myRepo --tag X --manifest --yes
Run Code Online (Sandbox Code Playgroud)

可以在此处找到更多信息Microsoft Azure 文档


Ale*_*fel 5

这是一个Powershell脚本,可删除除标签MyTag1和MyTag2之外的所有Azure容器注册表标签:

az acr repository show-tags -n MyRegistry --repository MyRepository | ConvertFrom-String | %{$_.P2 -replace "[`",]",""} | where {$_ -notin "MyTag1","MyTag2"  } | % {az acr repository delete -n MyRegistry --repository MyRepository --tag $_ --yes}
Run Code Online (Sandbox Code Playgroud)

它使用Azure CLI 2.0