Docker V1和V2——存储消耗有什么不同吗?

JFrog支持
2023-01-22 11

Docker V1和V2的存储消耗差异

除了新的DB引用,从Docker V1到V2的迁移过程不应该占用额外的空间。尽管如此,Artifactory UI中的Storage Summary页面可能为V2存储库指出了更大的空间利用率。但是,如果将其与迁移到V2的V1存储库进行比较,就会发现这实际上并不意味着V2存储库实际占用了更大的磁盘空间。这是因为V2 Docker回购的结构与V1回购不同。在V1中,blob(或图层)全局存储在.images目录中,而在V2中,结构要求所有blob都出现在每个标记的特定路径中。结果是,一些由多个映像共享的blob在V2 repo中将有多个DB引用。

还需要注意的是,由于Artifactory依赖于基于校验和的存储,因此它只会为新创建的V2文件创建“指针”DB引用,这并不需要额外的文件系统存储消耗。事实上,当在Storage Summary页面上检查V2回购时,您可能会看到更大的磁盘空间利用率,因为Artifactory表示如果导出存储库将会消耗的空间。

如果您曾经想知道为什么存储库导出或备份比文件系统存储大,那么下面就是原因。因此,由于导出不是基于校验和的,存储空间记录考虑的是每个二进制与其所有引用相乘。