如何从Azure容器注册表中删除图像
有没有办法只删除特定的标签?我只找到了一种使用/如何从Azure容器注册表中删除图像,azure,docker-registry,azure-container-registry,Azure,Docker Registry,Azure Container Registry,有没有办法只删除特定的标签?我只找到了一种使用/ 感谢从下面复制的更新: 作为更新,今天我们发布了几个功能的预览,包括单个Azure Active Directory登录和Webhook 原始答复: 我们正在加强注册,以便在本月晚些时候发布GA。我们推迟了所有新功能,同时我们专注于性能、可靠性和其他azure数据中心,通过GA在所有公共数据中心提供ACR。 我们将在未来版本中提供图像和标签的删除。 我们开始使用跟踪功能和bug。 删除在此处捕获: 谢谢你的反馈, Steve作为更新,今天我们发布
感谢从下面复制的更新:
作为更新,今天我们发布了几个功能的预览,包括单个Azure Active Directory登录和Webhook 原始答复: 我们正在加强注册,以便在本月晚些时候发布GA。我们推迟了所有新功能,同时我们专注于性能、可靠性和其他azure数据中心,通过GA在所有公共数据中心提供ACR。 我们将在未来版本中提供图像和标签的删除。 我们开始使用跟踪功能和bug。 删除在此处捕获: 谢谢你的反馈,
Steve作为更新,今天我们发布了几个功能的预览,包括存储库、单个Azure Active Directory登录和Webhook。 Steve您可以使用从存储库中删除带有给定标记的图像:
az acr repository delete-n MyRegistry--repository MyRepository--tag MyTag
是Azure容器注册表的名称MyRegistry
是存储库的名称MyRepository
表示要删除的标记MyTag
您还可以通过省略
--tag MyTag
来选择删除整个存储库。有关az acr repository delete
命令的更多信息可在此处找到:我遇到了一个类似的问题,我想从存储库中删除历史图像,因为我们的配额已达到100%
我可以通过在Azure CLI 2.0中使用以下命令来实现这一点。该过程执行以下操作:获取标记列表,使用grep对其进行过滤,并在将其传递给delete命令之前使用sed对其进行清理
获取给定存储库的所有标记
az acr repository show-tags -n [registry] --repository [repository]
获取以特定输入开头的所有标记,并将其传递到sed,sed将删除后面的逗号
grep \"[starts with] | sed 's/,*$//g'
使用xargs,将输出分配给变量X并将其用作标记
--舱单:
删除标记引用的清单。这还会删除任何关联的图层数据和引用清单的所有其他标记
--是-y:不提示确认
e、 g.registry=myRegistry,repository=myRepo,我想删除以标记名“test”开头的所有标记(包括test123、testing等)
更多信息可在此处找到这是一个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}
它使用。我尝试了所有命令,但没有一个有效。我认为它可以堆叠,所以我去了我的门户azure,自己删除了我的存储库。它可以工作以下命令有助于删除名称或搜索模式后的特定图像:-
az acr repository show-manifests -n myRegistryName --repository myRepositoryName --query '[].tags[0]' -o yaml | grep 'mySearchPattern' | sed 's/- /az acr repository delete --name myRegistryName --yes --image myRepositoryName:/g'
我的用例是删除2020年8月之前创建的所有容器注册表,因此我复制了以下命令的输出,然后执行它们,因为我的清单名称的创建日期类似于DDMMYYYY-HHMM
:-
az acr repository show-manifests -n myRegistryName --repository myRepositoryName --query '[].tags[0]' -o yaml | grep '[0-7]2020-' | sed 's/- /az acr repository delete --name myRegistryName --yes --image myRepositoryName:/g'
参考:以下来自@christianliebel Azure CLI的回答生成错误
无法识别的参数:--tag MyTag
:
➜ az acr repository delete -n MyRegistry --repository MyRepository --tag MyTag
az: error: unrecognized arguments: --tag MyTag
我使用的是:
➜ az --version
azure-cli 2.11.1
这项工作:
➜ az acr repository delete --name MyRegistry --image Myrepository:Mytag
This operation will delete the manifest 'sha256:c88ac1f98fce390f5ae6c56b1d749721d9a51a5eb4396fbc25f11561817ed1b8' and all the following images: 'Myrepository:Mytag'.
Are you sure you want to continue? (y/n): y
➜
Microsoft Azure CLI文档示例:
现在似乎没有办法做到这一点。删除功能将仅在未来版本中实现。
➜ az --version
azure-cli 2.11.1
➜ az acr repository delete --name MyRegistry --image Myrepository:Mytag
This operation will delete the manifest 'sha256:c88ac1f98fce390f5ae6c56b1d749721d9a51a5eb4396fbc25f11561817ed1b8' and all the following images: 'Myrepository:Mytag'.
Are you sure you want to continue? (y/n): y
➜