Docker diff图像

我知道这个问题已经被问到很久以前了,但是我找不到任何答案,所以我再问一次:我在本地有一个“复杂”(即深)的docker图像树,我想看图像之间的差异。

[lgmasapp203 ~]$ docker images -t Warning: '-t' is deprecated, it will be removed soon. See usage. ├─64e5325c0d9d Virtual Size: 125.1 MB │ └─bf84c1d84a8f Virtual Size: 125.1 MB │ └─87de57de6955 Virtual Size: 169.5 MB │ └─6a974bea7c0d Virtual Size: 291.8 MB │ └─06c293acac6e Virtual Size: 292.6 MB │ └─b8a058108e9e Virtual Size: 292.6 MB │ └─9aa09af53eee Virtual Size: 292.6 MB │ └─a0513c939a75 Virtual Size: 292.6 MB │ └─f509350ab0be Virtual Size: 292.6 MB │ └─b0b7b9978dda Virtual Size: 292.6 MB │ └─6a0b67c37920 Virtual Size: 815.9 MB 

我已经尝试了docker save <image-id>方法,然后提取tar文件并比较条目,但是我得到的只是一堆jsonVERSIONlayer.tar文件:

 [lgmasapp203 ~]$ find 226a 226a 226a/9aa09af53eeee5a36dfd4f0542cf61ec16c3c168e3b6303b49a7bd5b804b1f56 226a/9aa09af53eeee5a36dfd4f0542cf61ec16c3c168e3b6303b49a7bd5b804b1f56/json 226a/9aa09af53eeee5a36dfd4f0542cf61ec16c3c168e3b6303b49a7bd5b804b1f56/VERSION 226a/9aa09af53eeee5a36dfd4f0542cf61ec16c3c168e3b6303b49a7bd5b804b1f56/layer.tar 226a/e617952427002a05bebf16ba89b0bcaf93a91c786171a6bebedae828ccce7c48 226a/e617952427002a05bebf16ba89b0bcaf93a91c786171a6bebedae828ccce7c48/json 226a/e617952427002a05bebf16ba89b0bcaf93a91c786171a6bebedae828ccce7c48/VERSION 226a/e617952427002a05bebf16ba89b0bcaf93a91c786171a6bebedae828ccce7c48/layer.tar 226a/dddd9e457da7e4ad86d2f6323541bfd439cf290716416a40a9fb4944ecee5c87 226a/dddd9e457da7e4ad86d2f6323541bfd439cf290716416a40a9fb4944ecee5c87/json 226a/dddd9e457da7e4ad86d2f6323541bfd439cf290716416a40a9fb4944ecee5c87/VERSION 226a/dddd9e457da7e4ad86d2f6323541bfd439cf290716416a40a9fb4944ecee5c87/layer.tar 

我也尝试直接进入/var/lib/docker目录,但没有find任何东西。


所以我从一个很简单的例子开始“从头开始”:

 [lgmasapp203 ~]$ docker run centos touch xxx [lgmasapp203 ~]$ docker ps -n 1 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b43b9b84172f centos:7 "touch xxx" 7 seconds ago Exited (0) 5 seconds ago backstabbing_hoover [lgmasapp203 ~]$ docker commit b43b xxx 4b0ed5d4fd1a09e062a02b7066b83115d73a1811863c597f6c5bda01a90507f4 [lgmasapp203 ~]$ docker run xxx ls -l xxx -rw-r--r-- 1 root root 0 Jul 2 14:31 xxx 

一切看起来不错,但是:

 [lgmasapp203 docker]# find /var/lib/docker/graph/4b0ed5d4fd1a09e062a02b7066b83115d73a1811863c597f6c5bda01a90507f4/ /var/lib/docker/graph/4b0ed5d4fd1a09e062a02b7066b83115d73a1811863c597f6c5bda01a90507f4/ /var/lib/docker/graph/4b0ed5d4fd1a09e062a02b7066b83115d73a1811863c597f6c5bda01a90507f4/layersize /var/lib/docker/graph/4b0ed5d4fd1a09e062a02b7066b83115d73a1811863c597f6c5bda01a90507f4/json 

我没有发现任何与“图层”有关的东西(如此处所述 )。 我不懂为什么?

此外:

 [lgmasapp203 docker]# find /var/lib/docker/ | grep xxx [lgmasapp203 docker]# 

那么我的文件xxx哪里?

在我看来,这将是一个“基本”的function…然后我很惊讶,这还没有得到解决…

这是否意味着我必须依靠json的“注释”部分? 这将是非常惊人的: – /

我知道这是很多问题;-)
提前感谢任何启发

克里斯托夫

我认为你没有find你的文件,因为文件系统的权利。 如果你看看/var/lib/docker/aufs/diff/4b0ed5d4fd1a09e062a02b7066b83115d73a1811863c597f6c5bda01a90507f4你可能会发现你的xxx文件。