如何将Docker镜像从一台主机复制到另一台主机?

假设我有10个docker图像。 在所有10个docker图像中,许多图层是相似的。

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

在拉下docker图片后,我探索:

 /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

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

我不知道这是否是一个正确的方法。 但下面的方法为我工作。 我testing了30个Kolla Openstack Docker镜像 。

为什么我有docker save问题?

正如我所说,我有30个docker图像。 当我保存使用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