如何查看docker图像的树视图?

我知道docker已经弃用 – --tree docker images命令--tree标志。 但是我找不到任何方便的命令来获得像docker images --tree一样的输出。 我find了dockviz 。 但它似乎是另一个容器运行。 有没有内置cli命令来查看图像的树视图,而不使用dockviz

问题5001提到的当前(2015年9月, dockviz 1.8)解决方法仍然是dockviz

 docker run --rm -v /var/run/docker.sock:/var/run/docker.sock nate/dockviz images -t 

-t允许保留在CLI中(不需要graphics)


2016年9月更新(Docker 1.10:docker 1.11即将发布1.12),一年之后, 迈克尔•哈特尔(MichaelHärtl)在同一期5001中 提到 :

从1.10开始,图层ID的工作方式发生了根本性的变化。 有关此主题的详细解释,请参阅#20399 。 还有#20451,但我不确定,如果这可以使用的NATE / dockviz图像。

就我个人而言,我发现新层面的工作方式非常混乱,不像以前那么透明。 而且它也没有很好的logging。
AFAIK @ tonistiigi在上述问题上的评论是唯一公开的解释。

TõnisTiigi :

在v1.10之前没有图层的概念,或者其他方式去思考它是每个图像只有一层。 你build立了一连串的图像,你推动和拉链。 链中的所有图像都有自己的configuration。

现在有一个层是一个内容可寻址的文件系统差异的概念。 每个图像configuration都有一个图层引用的数组,这些图层构成了图像的根文件系统,并且没有图像需要其父文件的任何东西运行。 推拉只移动一个图像,父图像只生成本地构build用于caching。

如果您使用Dockerfile构build映像,则每个命令都会将历史logging添加到映像configuration中。 这个存储命令,所以你可以在docker历史中看到它。 由于这是图像configuration的一部分,它也随着推/拉而移动,并被包括在校验和validation中。

以下是一些内容可寻址configuration的例子:
https://gist.github.com/tonistiigi/6447977af6a5c38bbed8

v1.10中的术语:(这个术语在实现中并没有改变,但是之前我们的文档可能是简化了的东西)。

  • 图层是一个文件系统差异 。 一堆堆叠在一起的文件组成一个根文件系统。 图层由graphdriverspipe理,他们不知道任何关于图像的信息。
  • 图像是你可以运行的东西,并显示在docker图像-a 。 需要有一个configuration对象。 当容器启动时,它需要某种方式从图像信息生成根文件系统。 在构build每个Dockerfile命令时创build一个新的映像。

你可以参考最近的项目TomasTomecek/sen ,其中:

  • 不得不了解1.10新的图层格式( 提交82b224e )
  • 包括图像树表示forms :

https://github.com/TomasTomecek/sen/raw/master/data/image-tree.gif