您可以将Docker映像推送到私有仓库中,仅包含与公共映像的区别吗?

时间:2019-03-19 04:29:45

标签: docker docker-registry docker-image

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

我现在根据非常大的公共Docker Registry映像构建映像。假设它称为bandwidthguy/five-gigabyte-image:latest

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

FROM bandwidthguy/five-gigabyte-image
COPY some-custom-file /etc/bigstuff

我创建图像:

docker build -t myversionof-five-gigabyte-image .

并标记它。

docker tag myversionof-five-gigabyte-image:latest myrepo.myhost.com/myversions/five-gigabyte-image:latest

现在我推送到我的仓库。

docker push myrepo.myhost.com/myversions/five-gigabyte-image

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

我想知道的是,是否有任何办法可以使Docker仅推送 difference 映像,然后在提取映像时从其各自的来源中提取其他层。将整个图像推送到我的私人仓库中可能会有问题:

  • 如果私人存储库托管在我的家庭ISP上,则我有限的上游资源可能会在拖拉图像到处或附近时引起严重的延迟。
  • 如果私有存储库位于托管服务上,则它可能具有磁盘配额,而我不必要地使用了5GB的配额。
  • 推送图片需要很长时间,尤其是当我当时上传速度较慢时。

您可能无法将零件放在不同的服务器上,但我认为值得一问,看看是否可以完成。您可以将所有层存储在自己的主机上,以运行无间隙的服务器,这是有道理的,但是似乎有些疏忽,您无法从注册表中获取源映像。

0 个答案:

没有答案