如何获得本地主机上的Docker镜像的图层

刚刚在Ubuntu上开始使用docker。 我拉了一个docker的形象如下。

docker pull coreos/apache 

现在我看到那里有三层被拉。

 Using default tag: latest latest: Pulling from coreos/apache a3ed95caeb02: Pull complete 5e160ca0bb5a: Pull complete 1f92e2761bfd: Pull complete Digest: sha256:9af520cee7bedcda564970ff790cdf2e72b6daccce8539f6b3c880ed7fc21091 Status: Downloaded newer image for coreos/apache:latest 

从上面,我看到这个图像有三层。

但现在,让我说我closures并重新打开terminal,我怎样才能得到这个图像(上面的相同信息)的图像。 什么是命令?

当我做docker的图像,我得到这个。

 REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 0584b3d2cf6d 9 days ago 196.5 MB hello-world latest c54a2cc56cbb 4 months ago 1.848 kB coreos/apache latest 5a3024d885c8 2 years ago 294.4 MB 

现在我知道图像ID,我怎样才能得到该图像ID的图层。 树中的选项

 docker images --tree 

不再工作了 它似乎被删除。 如果没有一个命令我怎么能得到,至less使用一个命令序列。

现在图像已经下载到本地主机(分层),即使您终止并重新login,图像仍然会存在于主机上。 它是分层下载的,但是作为一个图像驻留在你的本地主机上,你现在可以使用'docker run'实例化一个容器,

如果你想再次拉下图片,并看到所有的图层被拉,你可以先删除你的图片(docker rmi),然后再做“docker pull coreos / apache”。 HTH

编辑:显示进入图像的实际图层,运行:

 docker history <imageid> 

如果你有busybox ,这里是我如何得到它。

docker inspect busybox – 将以json格式显示长期configuration,下面是从中获取图层的摘录。

 "RootFS": { "Type": "layers", "Layers": [ "sha256:e88b3f82283bc59d5e0df427c824e9f95557e661fcb0ea15fb0fb6f97760f9d9" ] } 

你可以简单的通过下面的命令来过滤它 – 使用--format docker inspect --format选项,它将给出OP正在查找的内容。

 rao @ ubuntu $ docker inspect --format '{{.RootFS.Layers}}' busybox [sha256:e88b3f82283bc59d5e0df427c824e9f95557e661fcb0ea15fb0fb6f97760f9d9]