如何查找Docker容器的图层ID并在另一个容器中重复使用

问题描述:

我在/var/lib/docker/aufs/中发现了图层和差异,但正如我从Docker文档中所了解的,图层ID与容器ID不匹配,并且docker也检查不显示图层。如何查找Docker容器的图层ID并在另一个容器中重复使用

我想知道如果我可以在另一个容器中重新使用docker图像层而不创建新图像,是否有办法做到这一点?有没有办法找到容器的图层ID?可信任:ubuntu的 -

UPDATE

我从一个基本图像由2升的容器。然后在一个容器中,我更新了存储库并安装了vim(增加了〜65mb)。然后我将文件从一个容器的差异复制到另一个容器。开始vim,它的工作。

但主要问题仍然存在 - 如何获取容器的图层ID?

UPDATE2

找到所有我需要/var/lib/docker/image/aufs/layerdb/mounts/<CONTAINER_ID>/mount-id

+0

即使有办法使用它们,我也不认为它是安全的。毕竟,它们是实施细节。实施可以随时更改,恕不另行通知。 – axiac

+0

请参阅我编辑的问题 – GALIAF95

我不认为你可以做到这一点。在这种documentation它指出:

与已经在缓存中,下一个 指令对从 基地图像导出所有子图像进行比较,看是否其中之一是使用中的基础图像开始完全相同的 说明。否则,缓存失效。

+0

建筑图像不是这种情况吗?我可以使用基础图像创建新的容器,然后在那里,如文档所述,将创建一个新的容器层,在那里进行所有更改。所以,如果我能找出这个容器的图层有什么ID,我可以从一个容器的图层复制到新的图层吗? – GALIAF95

+0

我不确定你是否可以这样做。但是,我相信一种方法就是为你需要的东西(共同基础)制作码头图像。之后,你可以在你的Dockerfile中从你刚刚创建的镜像中读取。 –

+0

请看我编辑的问题 – GALIAF95