我想从 azure 容器注册表的各个存储库中删除一些不需要的标签/图像。我想以编程方式完成所有这些。例如,我需要的是:
- 使用 ACR 进行身份验证
- 列出所有存储库
- 列出每个存储库的所有标签
- 删除带有特定标签的不需要的图像。
通常可以使用 Azure CLI 和az acr命令来完成这些操作。也许我可以创建一个带有az acr命令的 PowerShell 脚本来完成此操作。
但是我可以用 python 做到这一点吗?是否有类似 Graph API 的东西来执行这些操作?
我为 ACR 找到了这个 API,但只允许删除整个注册表。它不允许特定于存储库的操作: https ://docs.microsoft.com/en-us/rest/api/containerregistry/
我尝试使用 docker 注册表 API: https ://docs.docker.com/registry/spec/api/
#!/bin/bash
export registry="myregistry.azurecr.io"
export user="myusername"
export password="mypassword"
export operation="/v2/_catalog"
export credentials=$(echo -n "$user:$password" | base64 -w 0)
export catalog=$(curl -s -H "Authorization: Basic $credentials" https://$registry$operation)
echo "Catalog"
echo $catalog
但是一直报错:
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"registry","Name":"catalog","Action":"*"}]}]}
在使用 Docker 注册表 API 之前,如何正确使用 ACR 进行身份验证?