摘要

  • 将新镜像推送到已有标签,会把标签指向新版;旧镜像仍可通过摘要访问,并继续占用 DigitalOcean 容器仓库存储。
  • 无标签镜像计入配额。删除标签、删除镜像清单和回收不再被引用的数据层,处理的是不同对象。
  • 已开放公测的自动垃圾回收可在后台清理无引用层,无须让仓库进入只读模式;手动路径仍有只读阶段,开始回收前的授权等待最多可能达到 15 分钟。

给货架上的箱子摘掉姓名牌,是一种很便宜的整理术。箱子还在,货架还满,房东也没收到退租通知。DigitalOcean 容器仓库对旧镜像的处理,比许多发布完成后的庆功记录更忠实于这个常识。

官方快速入门说明写得很直接:把新镜像推送到一个已有标签,标签会更新,旧镜像仍能通过它的摘要访问,继续占用仓库存储。新版拿走名字,旧版留下身体。工程团队看到的是一次顺利替换,计费系统看到的是又一份尚未退场的历史。

旧版留着可能很值钱。它可能是下一次错误发布后的退路,也可能只是上个月没人收拾的试验品。两者在业务上的价值相差很大,在“无标签”这个技术状态里却可以挤在同一栏。省钱的关键,因而不是把清理按钮点得更勤,而是有人认领这批历史。

标签搬家,存储没搬家

镜像标签是便于人和发布工具使用的名字。摘要则把一个具体版本钉住。DigitalOcean 的文档允许旧版在标签更新后继续以摘要访问,这让名字可以向前走,版本历史仍留在后面。

这种分离有实际用途。团队可以让日常发布使用熟悉的标签,同时用精确摘要识别需要保留的版本。问题出在交接语言:一句“旧版已经替换”,容易被预算负责人听成“旧版已经删除”,又被别人记成“存储已经释放”。一项动作被报销了三次功劳。

官方定价页明确把无标签镜像算进存储配额。清理指南则区分标签、摘要所指的镜像清单,以及清单引用的数据层。删除摘要会连带删除其标签;删除清单后,还可能留下已经无人引用、但尚未被回收的数据层。名字消失和字节消失之间,有一段真实的产品流程。

因此,标签列表适合回答发布用了什么名字,不能独自结清存储账。镜像失去标签,也不能证明它已经失去用途。若某项恢复安排仍依赖那个摘要,仓库里留着它就是一项有目的的支出;若无人能解释为何保留,支出才开始像遗忘税。

清洁工不负责决定收藏价值

DigitalOcean 的自动垃圾回收目前处于公测,需要主动加入。启用后,它会持续在后台清理不再被引用的镜像数据层,避免手动回收所需的只读阶段。这是值得计入采购判断的改进:清理存储可以少占一个发布窗口。

但自动清理的对象写得很具体:无引用的数据层。一个仍被保留的无标签清单,仍可能引用自己的层。“没有标签”和“没有引用”不是同一项判断。自动化可以搬走已经确定是垃圾的材料;它不能从一个产品名称里猜出客户还需要哪个回滚版本。

手动清理界面为删除无标签清单提供了单独选项,命令行也有对应选择。这个额外动作揭示了责任所在:回收无引用层,与决定放弃哪些镜像历史,要分别处理。把两者都塞进“垃圾”这个轻巧词语,容易把有价值的退路和无主的库存一起打包。

更快的清洁工也不会自动扩大仓库容量。Professional 套餐的存储在其多个仓库之间共享,最多十个仓库没有给每个仓库各发一份 100 GiB。多开几个名字,照样可以把同一个配额装满。组织结构变清楚了,储存的东西却不会因此变轻。

节省空间也有日程表

官方定价页列出 Basic 每月 5 美元、含 5 GiB,Professional 每月 20 美元、含 100 GiB;额外存储按页面列示的每 GiB 费率及超额天数比例计费,在每日结束时计入。判断一轮清理省了多少,需要实际占用和计费天数。删了多少个标签,代替不了这些量。

这也解释了为何“多留几份版本很便宜”和“自动保存所有历史很便宜”是两种主张。前者可以由明确的恢复需要支持,后者会随着发布频率、镜像体积和保留习惯一起成长。相同层的复用关系还会影响最终可释放的空间,逐个镜像把标称体积相加,并不是可靠的节省金额。

走手动回收路径时,仓库会暂时进入只读模式。在真正开始回收之前,平台需要等待先前写入授权过期,文档给出的等待上限是 15 分钟,取决于上次写入何时开始。这是回收前的等待,不是整项工作的完成时限。安排发布的人需要给这段操作留位置,而不是把十五分钟当成一个随手可填的维护承诺。

取消也有容易被轻读的含义。DigitalOcean 会显示取消之前已删除的 blob 数量和已释放的空间。取消让余下工作停止,并没有替已经删除的内容办一次复活手续。想保留的镜像,应该在执行破坏性清理之前被认领。

上传了一半,也不是已经入库

自动回收还带来另一条时间边界:启用后,未在 24 小时内完成的镜像上传会被视作部分上传,其数据层具备被自动回收的资格。

这个规则针对未完成的上传。它没有给已经完成的旧镜像统一设置一天寿命,也没有承诺第 24 小时一到就准确删掉所有残片。它让长时间悬而未决的上传进入清理范围。把“开始上传”写成“版本已经保存”,就可能让一份发布记录领先于真正可用的镜像。

对小团队而言,这类边界往往比多买一点存储更影响日常工作。负责构建的人关心推送,负责发布的人关心标签,负责恢复的人需要具体版本,负责预算的人看到总量。每个人都能把自己那一步做完,仓库仍然可能留下无人负责的旧货。

RIPE NCC 的一手会员记录确认了 DigitalOcean, LLC 的组织身份;这里的产品和计费判断来自 DigitalOcean 自己的文件。真正需要从客户侧补齐的是逐摘要的保留理由、引用关系及清理前后占用记录;这些记录才能量出某个团队的浪费与收益。

买到自动清理,值得高兴。把“哪个版本还要活着”也交给“自动”两个字,就高兴得太早了。仓库最需要的一项管理工作,往往是让每个被留下的旧版本有一位愿意继续为它付钱的主人。

一手资料