首页/云/Docker 容器速查/docker tag 给镜像打标签
镜像与构建107 条

docker tag 给镜像打标签

为已有镜像追加引用名:为推送私有仓库补全地址前缀,或同时维护版本标签与 latest;同一镜像的所有标签共享同一个镜像 ID。

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

docker tag 是什么

给已有镜像追加一个引用名。镜像本身用内容标识区分,标签只是指向它的可读名称,因此打标签不复制任何数据。最常见的两件事:为推送私有仓库补全仓库地址前缀,以及让同一个镜像同时拥有版本标签与便于取用的浮动标签。

基本信息

语法docker tag 源镜像[:标签] 目标名[:标签]
命名规则仓库路径必须全小写,不能含空格
数据影响只新增引用,不复制层数据,占用几乎不变
不写标签时默认使用 latest
适用平台所有 Docker Engine 与 Docker Desktop 环境

典型使用场景

  • 推送私有仓库前补全地址:把本地简短名改成含注册表地址的完整引用
  • 同时维护两个标签:发布版本号加一个便于取用的浮动标签
  • 跨环境迁移:为同一镜像打上目标环境的命名空间,便于权限与策略区分
  • 修正命名错误:构建时名字写错,补一个正确引用后重新推送
  • 搭建本地测试集:把第三方镜像重命名到自己仓库下,统一管理来源

常用示例

常用示例
docker tag app/web:1.0 registry.example.com/team/app-web:1.0   # 补全仓库地址
docker tag app/web:1.0 app/web:latest                           # 同时维护浮动标签
docker images --filter 'reference=registry.example.com/team/*'  # 核对结果
docker push registry.example.com/team/app-web:1.0               # 推送新引用

命名各段读法

片段含义注意事项
注册表地址镜像仓库的域名或主机端口省略时按公共仓库解析,内部镜像别漏写
命名空间仓库里的组织或项目名通常与权限和配额挂钩
仓库名镜像名称多段路径用于表达层级,全部小写
标签版本或环境标识不写时默认最新,生产用具体版本
内容标识镜像的唯一标识多个标签指向同一标识即同一份数据

命名与发布的约定

  • 版本号用语义化写法,便于排序与依赖表达
  • 环境标识单独一段,方便按环境配置拉取权限
  • 临时验证用带日期或提交号的标签,不与发布标签混用
  • 浮动标签只在一个方向移动,指向最新稳定版本,不做回退操作
  • 命名一旦发布就尽量不要改,改名会让下游引用失效

打标签之后要确认的

  • 核对仓库地址是否为目标私有仓库,避免推送到公共命名空间
  • 确认目标标签尚未被使用,覆盖远端标签会影响正在使用它的部署
  • 推送后确认远端摘要与本地一致,确保传输完整
  • 记录本次发布使用的具体标签与摘要,回滚时才有依据
  • 清理不再需要的临时标签,避免本地与远端标签数量失控
标签只是引用,删除某个标签不等于删除镜像数据;只有当所有标签都被删除且没有容器引用时,镜像本体才会被回收。
名称里带大写字母会直接报错。仓库命名统一小写,能避免后续改名、重新推送、更新编排文件这一串返工。

常见组合动作

  • 构建后立刻打上版本标签与仓库前缀,再推送,避免中途漏步骤
  • 发布完成后核对远端标签列表,确认版本标签与浮动标签都到位
  • 回滚时把指定旧版本标签重新指向修复镜像,比改部署文件更快
  • 清理临时标签前先确认没有部署引用它,避免拉取失败
  • 多环境发布用同一镜像配不同标签,减少重复构建带来的差异

易错点

  • 本地镜像名不带仓库前缀就推送,结果进了公共仓库的同名命名空间,内部镜像可能被公开
  • 标签里用了大写字母,操作报错后需要重新命名并重新推送
  • 用同一个浮动标签连续发布,远端原标签被覆盖,正在使用该标签的部署拉到的内容变了
  • 以为删了标签就释放了磁盘,实际镜像仍被其他标签或容器引用

数据来源与参考

  • Docker 官方 CLI 参考:docker tag(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌