az acr repository delete 和 untag 命令有什么区别?
What is the difference between az acr repository delete and untag commands?
我正在尝试编写一个脚本来清理 Azure 容器注册表。我为此使用的命令是:
# Remove images with unwanted tags
az acr repository delete --name $registryName --image $imageName --yes
# Remove dangling images
az acr repository show-manifests --name $AzureRegistryName --repository $RepositoryName --query "[?tags[0]==null].digest" -o tsv `
| %{ az acr repository delete --name $AzureRegistryName --image $RepositoryName@$_ --yes }
imagename
指的是 repository:unwantedtag
的组合。
如上所述,我正在使用 az acr repository delete
命令。这将删除 imagename
引用的清单以及引用同一清单的所有其他标签。
如果我的同一张图片有两个不同的标签,即 test:100
和 test:101
,那么两者将有相同的清单。出于清理目的,我只想保留其中一个。如果我删除一张图片 test:100
,那么删除清单也会删除 test:101
。这是不可取的。
另一件事是,如果我想在清理期间同时删除两个标签,在先删除 test:100
之后,当我尝试删除 test:101
时,它会 return 一个错误:
az : ERROR: Error: manifest unknown.
即使它不会阻止脚本进一步执行,这个错误也很烦人。两个标签也被删除。
所以基本上,我需要的是这个问题的解决方案。
使用 az acr repository untag
命令而不是 delete
可以解决这个问题吗?如果我用不需要的标签取消标记图像,然后 运行 一个删除悬空清单的命令怎么办?
从这个角度看,delete
和 untag
命令有何不同?
az acr repository delete
命令按标签删除图像。图像独有的所有图层以及与图像关联的任何其他标签都将被删除。
az acr repository untag
命令删除标签。当您取消标记图像时,没有 space 被释放,因为它的清单和图层数据保留在注册表中。仅删除标记引用本身。
我需要的实际方法是先取消图像标签,然后删除悬挂的清单。
我正在尝试编写一个脚本来清理 Azure 容器注册表。我为此使用的命令是:
# Remove images with unwanted tags
az acr repository delete --name $registryName --image $imageName --yes
# Remove dangling images
az acr repository show-manifests --name $AzureRegistryName --repository $RepositoryName --query "[?tags[0]==null].digest" -o tsv `
| %{ az acr repository delete --name $AzureRegistryName --image $RepositoryName@$_ --yes }
imagename
指的是 repository:unwantedtag
的组合。
如上所述,我正在使用 az acr repository delete
命令。这将删除 imagename
引用的清单以及引用同一清单的所有其他标签。
如果我的同一张图片有两个不同的标签,即 test:100
和 test:101
,那么两者将有相同的清单。出于清理目的,我只想保留其中一个。如果我删除一张图片 test:100
,那么删除清单也会删除 test:101
。这是不可取的。
另一件事是,如果我想在清理期间同时删除两个标签,在先删除 test:100
之后,当我尝试删除 test:101
时,它会 return 一个错误:
az : ERROR: Error: manifest unknown.
即使它不会阻止脚本进一步执行,这个错误也很烦人。两个标签也被删除。
所以基本上,我需要的是这个问题的解决方案。
使用 az acr repository untag
命令而不是 delete
可以解决这个问题吗?如果我用不需要的标签取消标记图像,然后 运行 一个删除悬空清单的命令怎么办?
从这个角度看,delete
和 untag
命令有何不同?
az acr repository delete
命令按标签删除图像。图像独有的所有图层以及与图像关联的任何其他标签都将被删除。
az acr repository untag
命令删除标签。当您取消标记图像时,没有 space 被释放,因为它的清单和图层数据保留在注册表中。仅删除标记引用本身。
我需要的实际方法是先取消图像标签,然后删除悬挂的清单。