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

raj*_*alx 7 docker

假设我有10个泊坞窗图像.在所有10个泊坞窗图像中,许多层都是相似的.

使用时docker save -o,保存的图像是独立的,因此图像尺寸会变大.(~10张图片大小约为9GB)

拉完docker图像后,我探索:

/var/lib/docker
  --- aufs (~3GB only)
  --- containers (Few KBs)
  --- image (Few KBs)
  --- ...
  --- mnt
Run Code Online (Sandbox Code Playgroud)

无论如何有效地导出图像?

我还尝试将aufs和image文件夹复制粘贴到新主机上.但有些容器无法启动.

检查日志时:

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

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

raj*_*alx 4

我不知道这是否是正确的做法。但下面的方法对我有用。我使用 30 个Kolla Openstack Docker 镜像进行了测试。

为什么我有问题docker save

正如我所说,我有 30 个 docker 镜像。当我保存时使用docker save -o <save image to path> <image name>. 总大小为 15 GB,太大而无法携带。

我做了什么 ?

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

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