Docker差异图像

时间:2015-07-02 14:01:57

标签: docker diff

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

[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目录,但没有找到任何内容。

所以我从“刮擦”开始,用一个非常简单的例子:

[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

我做了找到与“图层”相关的任何内容(如提到的here)。我不明白为什么?

此外:

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

那么我的档案xxx去了哪里?

在我看来,这将是一个“基本”特征......然后我很惊讶这已经没有得到解决......

这是否意味着我必须依赖于json的“评论”部分?这将是非常惊人的: - /

我知道这是很多问题;-)
提前完成任务的启发

克里斯托弗

1 个答案:

答案 0 :(得分:0)

我认为由于文件系统权限,您没有找到带有查找的文件。 如果你查看/var/lib/docker/aufs/diff/4b0ed5d4fd1a09e062a02b7066b83115d73a1811863c597f6c5bda01a90507f4,你可能会找到你的xxx文件。