假设我有 10 个 docker 镜像。在所有 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 https://stackoverflow.com/questions/23935141/how-to-copy-docker-images-from-one-host-to-another-without-via-repository。这个问题不是重复的。它没有解决我上面提到的用例。
我不知道这是否是正确的做法。但下面的方法对我有用。我测试了30个Kolla Openstack Docker 镜像 https://github.com/openstack/kolla.
为什么我有问题docker save
?
正如我所说,我有 30 个 docker 镜像。当我保存时使用docker save -o <save image to path> <image name>
。总大小为 15 GB,太大而无法携带。
我做了什么 ?
长话短说:我仔细复制了aufs和image文件夹。
Step 1:
在要导出的计算机中:确保只有图像(要导出)。删除所有正在运行和停止的容器。
在要导入的计算机中:确保您没有任何图像和容器。
Step 2: tar -cvf docker-images.tar /var/lib/docker/aufs /var/lib/docker/image
它将所有图像层及其数据库压缩到一个 tar 文件中。大小仅为 3 GB
Step 3:在机器中,您要导入图像,
tar -xvf docker-images.tar -C /var/lib/docker/
.
现在重新启动docker。service docker restart
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)