我有一个很大的docker映像,需要复制到远程计算机。 我在本地计算机上使用不变的基础映像来构建映像,因此仅最后几层发生了变化。 我想在远程计算机上拥有该基础映像,并且只要更改了顶层,就将它们复制到远程计算机。我无法使用其dockerfile在远程上构建映像,因为远程上不存在必需的源文件。
我可以使用undocker将图像分成几层,但是如何从远程计算机上的各层重新组装图像呢?
答案 0 :(得分:0)
我从未使用过undocker工具,因此无法对此发表评论,但据我所知,docker中的图像是一个“密封包装”,准备以一种或另一种方式分发。
所以复制部分图像对我来说就像分发软件包的一部分。
另一方面,我可以理解大图像的开销(可能您正在寻找更快的复制),但这与docker的“意识形态”(按原样获取图像并使用它)相矛盾。
因此,最直接的选择可能是将源(位于“最后几层”中)准备为可分发的程序包而不使用docker,将它们复制到远程计算机,然后在远程计算机上构建映像。基本图片和此可分发软件包
这可以克服您所说的“远程服务器上不存在必需的源文件”的解决方法
答案 1 :(得分:0)
我已改用Docker注册表,并用docker pull
更新映像,我认为这是解决此问题的正确方法,因为它只会下载更改的层。
This article还帮助我减小了图片的大小。