Docker 中的存储库是否包含一个基础层,在该基础层之上添加了所有其他层?
Are repositories in Docker contain one base layer on top of which all other layers are added?
我正在学习 Docker 并想阐明存储库的含义。
存在单一的联合文件系统层链。此链中有对不同(可能不是全部)层的引用,这些引用称为标签。 Docker 上下文中单个链中引用层的标签集称为存储库。正确吗?
如果我们可以在一个存储库中拥有多个层链,我特别感兴趣。据我了解我们不能,是这样吗?
所有中间层和基础层都被缓存和存储一次(每层 id/hash 个构建步骤),即使它们用于不同的构建(图像标签)或具有相同的第一个构建步骤的不同图像
存储库有点像注册表的命名空间。授权在存储库级别处理,必须先将 blob 和清单推送(或装载)到存储库中,然后才能从该存储库中拉出它们。
那些 blob 是图像层和配置,每个都由它们的摘要引用(因为注册表是 CAS,内容可寻址存储)。由于 blob 是内容可寻址的,因此您只存储它们一次,如果您再次尝试推送它们,它们会自动删除重复数据。图像的清单通过摘要列出层和配置,摘要本身由摘要表示。标签是指向清单摘要的(通常是可变的)指针。
同一存储库中任意两个清单引用的层可以相同、重叠或完全不相交。两个清单之间没有任何共同点的层次结构要求。所以对这个问题的简短回答是肯定的,你可以在一个存储库中拥有多个层链。
我正在学习 Docker 并想阐明存储库的含义。
存在单一的联合文件系统层链。此链中有对不同(可能不是全部)层的引用,这些引用称为标签。 Docker 上下文中单个链中引用层的标签集称为存储库。正确吗?
如果我们可以在一个存储库中拥有多个层链,我特别感兴趣。据我了解我们不能,是这样吗?
所有中间层和基础层都被缓存和存储一次(每层 id/hash 个构建步骤),即使它们用于不同的构建(图像标签)或具有相同的第一个构建步骤的不同图像
存储库有点像注册表的命名空间。授权在存储库级别处理,必须先将 blob 和清单推送(或装载)到存储库中,然后才能从该存储库中拉出它们。
那些 blob 是图像层和配置,每个都由它们的摘要引用(因为注册表是 CAS,内容可寻址存储)。由于 blob 是内容可寻址的,因此您只存储它们一次,如果您再次尝试推送它们,它们会自动删除重复数据。图像的清单通过摘要列出层和配置,摘要本身由摘要表示。标签是指向清单摘要的(通常是可变的)指针。
同一存储库中任意两个清单引用的层可以相同、重叠或完全不相交。两个清单之间没有任何共同点的层次结构要求。所以对这个问题的简短回答是肯定的,你可以在一个存储库中拥有多个层链。