首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >随时间管理码头形象

随时间管理码头形象
EN

Stack Overflow用户
提问于 2016-12-12 00:46:22
回答 1查看 386关注 0票数 2

那些在push上构建Docker映像的人--随着时间的推移,您如何管理不同的版本?

  1. 他们都有自己的标签吗?您是否根据git哈希进行标记?
  2. 你会在一段时间后删除旧图像吗?它们不是占用了很多空间(1GB+)吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-12 03:35:43

随着时间的推移,您如何管理不同的版本?

首先要注意的是,随着时间的推移,标签不能被信任。它们不能保证引用相同的东西或者继续存在,所以使用Dockerfile LABEL,它将保持一致,并且总是与图像一起存储,label-schema.org是一个很好的起点。

他们都有自己的标签吗?您是否根据git哈希进行标记?

如果您需要一些独特的东西来引用每个构建,只需使用图像sha256和。如果希望向映像附加额外的构建元数据,请使用前面提到的LABEL,并包括git哈希和任何您想要的版本控制系统。如果使用sha256和听起来很难,那么仍然需要标记来引用多个映像版本,所以您需要一些系统。

Git标签,日期时间,构建数字都可以工作。每个版本都有各自的优点和缺点,取决于您的环境以及您试图将其作为“发布版”的内容。值得注意的是,Docker映像可能来自带有git哈希的Dockerfile,但如果您在其他地方获取图像FROM,则从该git哈希构建的图像将不会随着时间的推移而产生一致的图像。

你会在一段时间后删除旧图像吗?

保留完全取决于您的软件/系统/公司需求或策略。我看到了审计要求很高的环境,这增加了构建/发布保留时间,直到“我希望在此构建上重新运行这些测试”。其他环境的审计很少,这往往会降低保留要求。有些地方甚至根本不尝试实施任何版本管理(这很糟糕)。对于您的特定环境,这里的人并不能真正回答这一点,虽然这是一个好主意。

基本要求是为每个生产版本存储一个伪制品。这通常是“永远”的历史目的。积极回顾一两个版本是非常罕见的(同样,这可以取决于您的应用程序),所以存档是一个好主意,而且很容易使用廉价存储/托管的第二个注册表,它可以推送所有内容的副本(即不是在您宝贵的ssd的副本上)。

随着时间的推移,我从未见过需要保留所有的开发构建。保留通常遵循您的开发/发行周期。很少需要访问当前版本+下一个版本中的dev构建。只需记住标记+标记开发构建适当,所以清理是简单的。-dev -snapshot -alpha.0之类的。

它们不是占用了很多空间(1GB+)吗?

通常比你想象的要少,但是是的,它们可以很大,因为在您的应用程序之上,您有一个OS映像。这就是为什么很多人开始使用阿尔卑斯,因为它比大多数发行版都要小,只要您没有任何与musl libc不兼容的东西。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41092801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档