首页/云/云与容器速查/docker tag 重命名镜像
容器与 Docker106 条

docker tag 重命名镜像

给镜像打新标签(本质是加别名,不复制数据):推送前改成仓库格式;同一镜像可打多个标签用于版本与回滚管理。

云与容器速查云更新于 2026-10-13

docker tag 是什么

docker tag 给已有镜像再加一个名字,本质是在镜像 ID 上增加一个引用,不会复制任何数据,磁盘占用不会翻倍。最常见的用法是推送前把本地名改成仓库全名,以及给同一镜像同时打版本号与滚动标签。镜像名由仓库地址、命名空间、名称与标签四段组成,缺一段就会被推到默认仓库。

基本信息

语义为镜像 ID 增加或替换引用名,存储不翻倍
名称结构仓库地址/命名空间/镜像名:标签
典型用途一本地名改为仓库全名,作为推送前置步骤
典型用途二版本号与滚动标签并存,如 1.0.0 与 stable
注意同一标签重新指向别的镜像后,原镜像可能变为悬空

典型使用场景

  • 推送准备:本地构建出的 app:latest 打上私有仓库地址再推送
  • 版本管理:一次构建同时打 1.0.0、stable 两个标签,回滚有据可依
  • 环境区分:同一镜像打 dev 与 prod 标签,分别部署到不同环境
  • 灰度发布:给新版本打 canary 标签,便于单独调度
  • 镜像迁移:从旧仓库拉取后重打标签推到新仓库,完成仓库搬迁

打标签与推送

打标签与推送
docker build -t myapp:1.0.0 .
docker tag myapp:1.0.0 registry.example.com/ns/myapp:1.0.0   # 改成仓库全名
docker tag myapp:1.0.0 myapp:stable                          # 同一镜像再加滚动标签
docker push registry.example.com/ns/myapp:1.0.0              # 推送前先 docker login
docker images myapp                                          # 核对标签指向同一个镜像 ID

标签命名建议

标签用途是否可变
1.0.0正式发布版本不可变,只指向唯一内容
latest最近构建,易被覆盖可变,不建议生产使用
stable当前稳定版指针可变,但需发布流程管控
dev / test环境专用可变,仅限对应环境
git 短提交号可追溯到源码不可变,便于排查
稳定发布环境只认不可变标签(版本号或镜像摘要),滚动标签留给测试环境。用摘要部署还能彻底避免同名标签被覆盖带来的意外。
打标签不会复制镜像数据,所以同一镜像挂多个标签不会占用额外磁盘;真正占空间的是不同内容却共用一个标签的历史版本。

易错点

  • 以为打标签会复制镜像、占双倍磁盘,实际只是增加引用
  • 把 latest 当成唯一版本依据,回滚时根本找不到对应内容
  • 推送前忘了加仓库地址前缀,镜像被推到默认仓库导致拉取失败
  • 同一标签被反复覆盖,出问题时无法判断线上跑的是哪次构建

数据来源与参考

  • Docker Docs:docker tag

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌