You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无buildx环境下,如何为Docker镜像清单列表添加多标签?

批量给Docker清单列表添加标签的简便方法

核心思路

直接复用已有的latest清单列表的唯一标识(digest),给这个digest打新标签并推送,无需重复执行docker manifest create命令。

具体步骤

  1. 获取现有清单的Digest
    先通过docker manifest inspect提取my_image:latest清单的digest,这里提供两种适配不同环境的方式:

    • 用jq工具(推荐,解析更稳定):
      # 若Bitbucket Pipelines环境无jq,先安装:apt-get update && apt-get install -y jq
      MANIFEST_DIGEST=$(docker manifest inspect my_image:latest | jq -r '.config.digest')
      
    • 用grep+awk替代(无需额外安装工具):
      MANIFEST_DIGEST=$(docker manifest inspect my_image:latest | grep -o '"digest": "[^"]*' | cut -d'"' -f4)
      
  2. 批量打新标签并推送
    将需要添加的标签存入数组,循环执行打标签和推送操作,实现批量处理:

    # 定义需要添加的标签集合,可按需修改
    TAGS=("build-123" "1.5" "stable")
    
    for TAG in "${TAGS[@]}"; do
      # 给清单的digest打新标签
      docker tag my_image@${MANIFEST_DIGEST} my_image:${TAG}
      # 推送新标签到AWS ECR
      docker push my_image:${TAG}
    done
    

注意事项

  • 确保已完成AWS ECR的登录操作(比如通过aws ecr get-login-password | docker login --username AWS --password-stdin <account-id>.dkr.ecr.<region>.amazonaws.com),否则推送会失败。
  • 该方法本质是给同一个清单对象添加多个引用标签,和重新创建清单的效果完全一致,且避免了重复指定多架构镜像的繁琐操作。

内容的提问来源于stack exchange,提问作者Campbell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 11:17:20