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

如何在DockerHub上为现有镜像重打标签且不创建副本?

DockerHub镜像标签修改(不创建副本)

首先要明确:Docker的标签本质是镜像ID的别名,你之前的操作只是给同一个镜像ID新增了一个标签并推送,所以DockerHub上会同时存在两个标签指向同一个镜像——这本身没产生副本(因为镜像ID一致,存储层是共享的)。如果你的需求是移除旧标签1,只保留新标签1.0,按以下步骤操作:

操作步骤

  • 拉取原有标签的镜像(本地已存在可跳过):
    docker pull repo/image:1
    
  • 给该镜像添加新标签:
    docker tag repo/image:1 repo/image:1.0
    
  • 推送新标签到DockerHub:
    docker push repo/image:1.0
    
  • 关键:删除DockerHub上的旧标签1
    Docker没有直接删除远程标签的命令,可通过两种方式操作:
    1. 网页操作:
      • 登录Docker Hub,进入对应仓库的Tags页面
      • 找到标签1,点击右侧的删除按钮(通常是垃圾桶图标)
    2. API操作(需Docker Hub访问令牌):
      # 获取旧标签对应的manifest digest
      curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
        https://hub.docker.com/v2/repositories/repo/image/manifests/1
      # 删除旧标签
      curl -X DELETE -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
        https://hub.docker.com/v2/repositories/repo/image/manifests/OLD_TAG_DIGEST
      
    注意:删除标签后,若该镜像ID无其他标签指向,Docker Hub会在一段时间后自动清理对应镜像存储层,避免无引用镜像占用空间。

注意事项

  • 你之前的操作并未创建镜像副本,两个标签指向的是同一镜像ID,DockerHub只是显示了所有存在的标签。要实现“替换标签”的效果,核心是删除旧标签而非修改标签本身。
  • 删除标签前请确认没有服务依赖该旧标签,避免影响业务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 23:49:54