如何将docker镜像从一个主机复制到另一个主机?

How to copy docker images from one host to another?

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

在使用docker save -o时,保存的图像是独立的,因此图像大小会增大。(对于10个图像,大小约为9GB)

在提取了Docker图像之后,我探索:

1
2
3
4
5
6
/var/lib/docker
  --- aufs (~3GB only)
  --- containers (Few KBs)
  --- image (Few KBs)
  --- ...
  --- mnt

是否有有效导出图像的方法?

我还尝试将粘贴AUF和图像文件夹复制到新主机。但有些容器不能启动。

检查日志时:

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

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


我不知道这是不是一个正确的方法。但下面的方法对我有用。我测试了30个KollaOpenStack Docker图像。

为什么我和docker save有问题?

如我所说,我有30个Docker图像。当我使用docker save -o 保存时。总大小为15GB,太大,不便于携带。

我做了什么?

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

步骤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/

现在重新启动Docker。service docker restart