标签策略解决什么问题
标签管理是一套约定:精确版本标签视为不可变,发布之后不再覆盖;次版本号这类滚动标签只作为便捷入口;再附加一个与提交号相关的标签用于回溯。这样既能用可读的标签部署,也能在回滚时准确还原当年的内容,而不是靠猜哪个旧包才是当时的版本。
基本信息
| 推荐形态 | 精确版本号 + 次版本号 + 提交号,多标签并存 |
|---|---|
| 部署引用 | 固定版本标签或内容摘要 |
| 不可变原则 | 已发布的精确版本标签不再覆盖 |
| 配套动作 | 批量推送同一仓库下的全部标签 |
| 清理策略 | 保留窗口要覆盖回滚需求 |
典型使用场景
- 制定团队的镜像发布与标签命名规范
- 建立可复现的发布流程,让回滚有明确依据
- 排查不同环境同名不同物的问题
- 规划仓库保留策略与回滚窗口的关系
- 审计线上服务实际运行的镜像版本
多标签构建与推送
多标签构建与推送
docker build -t registry.example.com/team/app/web:1.4.2 -t registry.example.com/team/app/web:1.4 -t registry.example.com/team/app/web:sha-abc1234 .
docker push --all-tags registry.example.com/team/app/web # 一次推送全部标签
docker image inspect registry.example.com/team/app/web:1.4.2 --format '{{index .RepoDigests 0}}' # 记录摘要标签形态与用途
| 标签形态 | 用途 | 原则 |
|---|---|---|
| 精确版本号 | 部署与回滚的基准 | 发布后不再覆盖 |
| 次版本号或滚动标签 | 便捷入口 | 可移动,不作为回滚依据 |
| 提交号标签 | 回溯与排查 | 与代码版本对应 |
| 内容摘要 | 严格可复现的引用 | 不随标签变化 |
把次版本号这类滚动标签当便捷别名使用,同时保留精确版本标签,可以兼顾可读性与可复现性。
仓库的清理策略如果短于回滚窗口,需要回滚时对应镜像可能已经被删除,保留策略要与发布节奏对齐。
把每个版本的摘要一并记录到发布单里,回滚时既可以按标签拉取,也能按摘要精确还原到当时的内容。