依据
首先,我们知道docker 的文件系统使用的是overlay2,这种文件系统有个特性就是:上下层合并方式,下层为只读层,上层为修改层。当上层与下层出现相同文件时,合并层只能看到上层的内容,下层的形同文件会被丢弃。
注意:这里的相同文件,指的是全路径名称一直的文件,不关心其内部内容是否一致。
处理方式
使用 docker inspect 命令查看镜像详细信息
docker inspect 2a4fa895acdc
显示内容
寻找 一级Key GraphDriver 的内容
红框所示
其中 data 就是文件系统的不同层
- LowerDir : 下层
- UpperDir: 上层
切换至 上层目录 查询对比的文件
cd /data/docker/overlay2/cb7fde35c8ac7892d0cd50f3331d0cbf21b75b8e732e4f6f49d6a992abb7e01f/diff
查看内容
ls
输出结果
结束
这样就拿到差异文件了