最好的 Docker 标记策略是什么?

What is the best Docker tagging strategy?

可以肯定的是,"latest" 标签是不够的(即如果你想要 rollback/debug)。

最好的 docker 标记做法是什么?用构建号或提交号标记它更好吗?或者其他选择?

我们不为开发环境使用标记,因为我们有相当不错的测试覆盖率,但我建议,您可以使用 CI 工具构建号(Teamcity、Jenkins)轻松标记容器,例如

docker build -t {yourserviceName}:{JENKINS BUILD NUMBER}

但是,生产部署 - 有点不同。 我们为此使用两个标签 - previouslatest

1.Build 构建服务器上的生产容器

2.Push 它到共享仓库

3.Pull 到生产服务器。

latest 标记始终包含在共享存储库中。 在第 3 步之前,只需将现有的 运行 容器重新标记为 上一个.

有什么好处?

如果您的 latest 容器发生严重故障,您只需回滚到 previous 容器。这是极其罕见的情况,当您必须进行快速回滚时,比方说,4 个部署返回,因此无需在那里维护版本