假设我在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 映像,然后在提取映像时从其各自的来源中提取其他层。将整个图像推送到我的私人仓库中可能会有问题:
您可能无法将零件放在不同的服务器上,但我认为值得一问,看看是否可以完成。您可以将所有层存储在自己的主机上,以运行无间隙的服务器,这是有道理的,但是似乎有些疏忽,您无法从注册表中获取源映像。