如何将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
。