Docker:将docker层组合成图像

Docker: combine docker layers into image

这个问题的起源是从 docker 私有注册中心拉取超级慢。

然后我通过registry remote API发现wget的速度是可以的

现在我得到一张图片的图层。如何将它作为图像加载到我的 docker 守护进程?

ps:

我试过了docker load < layer.0,其中layer.0是所有层的基础图像。

结果如下。

FATA[0015] Error: open /home/docker/data/docker/tmp/docker-import-087506163/repo/etc/json: no such file or directory

所有层都是不同的,您必须加载它们才能使 "image" 完整。没有包含所有图层的单个图像文件。这是设计使然,因为它允许共享这些层作为后续图像的基础。

您可以通过 docker 导出然后 docker 导入来拼合图像。这将采用所有现有层并将它们作为单个文件系统映像导出到 tarball 中。然后 import 将把它作为图像再次导入。

步骤:

docker run --name mycontainer创建容器的镜像(容器名mycontainer只是举例)

docker export --output=mycontainer.tar mycontainer 压缩包的容器(mycontainer.tar 只是一个例子)

cat mycontainer.tar | docker import - mynewimage:imported 压缩包(图像名称 mynewimage:imported 只是一个例子)

文档: