Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Azure容器注册表中删除图像_Azure_Docker Registry_Azure Container Registry - Fatal编程技术网

如何从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

  • MyRegistry
    是Azure容器注册表的名称
  • 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
➜