繁体   English   中英

如何将 ACR 存储库中的所有图像导入不同租户中的另一个 ACR

[英]How to import all images from an ACR repository to another ACR in different tenant

场景:我在 ACR(azure 容器注册表)中有 4 个存储库,每个存储库中有多个图像。 我想将所有存储库和其中的所有图像移动到不同的 ACR(天蓝色容器注册表)我所做的事情:我使用以下命令将 ACR(天蓝色容器注册表)存储库中的单个图像导入到另一个 ACR 存储库。

az acr import \
  --name myregistry \
  --source sourceregistry.azurecr.io/sourcerrepo:tag \
  --image targetimage:tag \
  --username <SP_App_ID> \
  --password <SP_Passwd>

问题:上述命令仅根据给定的标签导入单个图像。

需要的解决方案:我想要实现的是将 ACR 的单个 repo 中的所有图像导入到不同的 ACR。

请让我知道是否有人对此有任何解决方案。

使用 pwsh 和 az cli 编写了这个脚本:

$SourceAcrName="source ACR Name"
$DestinationAcrName="destination ACR Name"

$Repos= az acr repository list --name $SourceAcrName | ConvertFrom-Json

foreach ($repo in $Repos) {
    $Tags = az acr repository show-tags -n $SourceAcrName --repository $repo | ConvertFrom-Json
    foreach ($tag in $Tags) {
        az acr import -r $SourceAcrName -n $DestinationAcrName --source "${repo}:${tag}" --no-wait
    }
}

它会将 ACR 中的所有存储库和标签复制到目标 ACR。 --no-wait参数允许任务在 Azure 中的后台运行,因此您不必等待确认。

没有直接的命令可以获取所有图像并传输到另一个区域。

但是,根据文档,您真正需要的是cli 脚本的有效使用,您可以通过 2 个步骤实现

(i) 从目的地检索所有图像
(ii) 迭代并将它们推送到目标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM