将 docker 图像从一个 acr 移动到另一个(docker 图像 --format 选项未执行 docker 标记,docker 推送)

Move docker images from one acr to another (docker images --format option not executing docker tag , docker push )

我正在尝试将图像从一个 acr 移动到另一个 acr。 (也请建议任何替代方法)

我正在使用 shell 脚本并且 我已经为一张图片声明了变量来测试它(但是我有 20 多张图片) “来源” 图片=“我的图片” minimum_version="1.0.0" “targetacr”

遵循的步骤:

docker pull $sourceacr/image --all-tags

然后从最低版本过滤,重新标记并推送到目标 acr

我的命令是

docker images $sourceacr/$image --filter "since=$sourceacr/$image:$minimum_version" --format "docker tag {{.Repository}}:{{.Tag}} $targetacr/$image:{{.Tag}} | docker push $targetacr/$image:{{.Tag}}"

我得到的输出是在 --format 选项后使用的命令,但它不执行标记和推送命令。感谢您的帮助!

当前输出:

docker tag source.azurecr.io/myimage:1.0.0 target.azureacr.io/myimage:1.0.0 | docker push target.azureacr.io/myimage:1.0.0

您使用命令的方式,基本上是在终端中输出 docker 命令。您需要将它们作为命令执行,尝试这样:

docker images $sourceacr/$image  --filter "since=$sourceacr/$image:$minimum_version" --format "docker tag {{.Repository}}:{{.Tag}} $targetacr/$image:{{.Tag}} | docker push $targetacr/$image:{{.Tag}}" | bash

或使用shell:

docker images $sourceacr/$image  --filter "since=$sourceacr/$image:$minimum_version" --format "docker tag {{.Repository}}:{{.Tag}} $targetacr/$image:{{.Tag}} | docker push $targetacr/$image:{{.Tag}}" | sh