重新标记多架构 docker 镜像

Woj*_*tek 13 docker multiarch

我正在寻找一种以不同名称重新标记现有图像的方法(例如,我们发布版本 xyz,我们latests也想标记 is)。目前我会这样做:

docker pull docker/my-app:123
docker tag docker/my-app:123 docker/my-app:latest
docker push docker/my-app:latest
Run Code Online (Sandbox Code Playgroud)

它适用于常规图像,但它会破坏多架构图像,并且仅标记/推送我当前计算机的架构。我知道我可以latest向 buildx 添加标签(它允许多个--tag参数),但我们也有这样的情况:我们有nightly构建,并且为了(测试)部署目的,我们用更多静态标签(大多数时候带有日期)来标记它们,并在这种情况下buildx多标签方法会中断。

(我知道有几个类似的问题,但它们是关于标记图像并推送到不同的存储库,并且经常建议使用 github.com/regclient/regclient 作为解决方案)

dev*_*ock 5

您可以使用buildx imagetools 创建命令。示例命令如下所示:

docker buildx imagetools create -t docker/my-app:latest docker/my-app:123
Run Code Online (Sandbox Code Playgroud)