2016-12-15 91 views
5

假设我有10个码头图像。在所有10个码头图像中,许多图层都是相似的。如何将Docker图像从一台主机复制到另一台主机上?

使用docker save -o时,保存的图像是独立的,因此图像尺寸变大。 (〜10对于图像大小约为9GB)

拉泊坞窗图像后,我将探讨:

/var/lib/docker 
    --- aufs (~3GB only) 
    --- containers (Few KBs) 
    --- image (Few KBs) 
    --- ... 
    --- mnt 

反正是有效率地导出的图片?

我也尝试复制粘贴aufs和图像文件夹到新主机。但有些容器无法启动。

虽然检查日志:

/usr/bin/sudo must be owned by uid 0 and have the setuid bit set

注:我已经提到this。这个问题不是重复的。它没有解决我上面提到的用例。

+1

可能的副本[如何将Docker镜像从一台主机复制到另一台主机而不通过存储库?](http://stackoverflow.com/questions/23935141/how-to-copy-docker-images-from-one-host -to-another-without-via-repository) – BMitch

+0

最好的解决方案是运行一个注册表服务器,如果安全是一个问题,你自己的私人服务器可以放在一个容器中,TLS加密会话和密码保护。 – BMitch

+1

当然,我可以运行注册表服务器。但我想将我的码头图像携带到USB或CD等便携式媒体中。 – rajagopalx

回答

2

我不知道这是否是一种正确的方法。但下面的方法为我工作。我用30 Kolla Openstack Docker Images进行了测试。

为什么我的问题docker save

正如我所说,我有30个码头图像。而我保存使用docker save -o <save image to path> <image name>。总大小为15 GB,这对于便携式来说太大了。

我做了什么?

长话短说:我仔细复制aufs和图像文件夹。

第1步:

在要导出机器:请确保您有只图像(它们将成为出口)。删除所有正在运行和停止的容器。

在要导入的机器中:确保您没有任何图像和容器。

第2步:tar -cvf docker-images.tar /var/lib/docker/aufs /var/lib/docker/image它会压缩所有的图像层和它的数据库到一个单一的tar文件。 尺寸只有3 GB

步骤3:在机床上,要导入图像,

tar -xvf docker-images.tar -C /var/lib/docker/

现在重新启动泊坞窗。 service docker restart

相关问题