首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >你能否将一个码头形象推送到私人回购中,并且只包括与公共形象的区别?

你能否将一个码头形象推送到私人回购中,并且只包括与公共形象的区别?
EN

Stack Overflow用户
提问于 2019-03-19 04:29:44
回答 1查看 517关注 0票数 1

假设我在myrepo.myhost.com有一个私有的Docker存储库。

现在,我根据一个非常大的公共码头注册中心映像构建了一个映像。假设它叫做bandwidthguy/five-gigabyte-image:latest

我有一个Dockerfile,它做一件简单的事情,例如:

代码语言:javascript
复制
FROM bandwidthguy/five-gigabyte-image
COPY some-custom-file /etc/bigstuff

我塑造了这样的形象:

代码语言:javascript
复制
docker build -t myversionof-five-gigabyte-image .

给它贴上标签。

代码语言:javascript
复制
docker tag myversionof-five-gigabyte-image:latest myrepo.myhost.com/myversions/five-gigabyte-image:latest

现在我开始做我的回购。

代码语言:javascript
复制
docker push myrepo.myhost.com/myversions/five-gigabyte-image

我注意到,在这样做时,整个大型源映像会被推送到我的存储库中。

我想知道的是,如果有任何方法让Docker只推一个不同的图像,然后从他们各自的来源,从其他层的图像被拉出。把整个形象推给我的私人回购可能会有问题:

  • 如果私人回购是托管在我的家庭ISP,我有限的上游可能造成大滞后时,拉出的形象和周围。
  • 如果私有回购是在托管服务上,那么它可能有一个磁盘配额,而我正在不必要地使用5GB的配额。
  • 这需要很长时间来推动图像,特别是如果我有缓慢的上传速度在当时。

可能是因为你不能将部件放在不同的服务器上,但我想问一问是否可以做到这一点是值得的。为了运行空隙服务器,您可以将所有的层存储在您自己的主机上,这是有意义的,但是您不能从注册表中提取源图像似乎有点疏忽。

EN

回答 1

Stack Overflow用户

发布于 2021-10-12 18:20:06

这个问题说明了我早期对码头工人的误解。目前还没有将图像的不同层存储在不同存储库中的机制。虽然没有任何理论上的理由不能实现这一点,但我猜它只是不值得额外的努力。

所以,我的问题的答案是否定的,你不能只在私人回购中存储图像差异--你将把所有的层次,包括那些从公共回购中提取出来的,存储在你的私人回购中。然而,由于层是由它们的散列来表示的,已经从公共回购中提取图像的客户端将不再需要从私有回购中重新下载这些层。这可能导致这样一种可能性,即可能会手动将非常大的层的散列从私有回购中踢出,然后用户可能需要首先手动从公共中提取源映像。(从私人回购中提取新鲜产品只会出错。)我还没有对此进行调查,但这可能是一种可能的麻烦解决方案。

幸运的是,没有太多的Docker图像实际上需要多个千兆字节的空间。即使如此,在注册表中存储、压缩和重复层。

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

https://stackoverflow.com/questions/55233679

复制
相关文章

相似问题

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