docker inspect
docker inspect node:alpine
查看元数据信息,一共有三层
"RootFS": {
    "Type": "layers",
    "Layers": [
        "sha256:8c6806a0692459f603d074b4a7bdd38915650f1563f4ec728dad229475a52090",
        "sha256:4656c0b053bfca9757d728365435a799b6e052441b319a1f534f8b74b98dbc45",
        "sha256:0d0e6d337afe2727f2ad81039883c2f5ecc7867771925a7362964b9083d92470"
    ]
}
Docker 文件系统是在宿主机上完成 Merge 后,再挂载到容器内的。容器运行后进行docker inspect
"GraphDriver": {
    "Data": {
        "LowerDir": "/var/lib/docker/overlay2/271aa46cedf7db63ae21b7d5-init/diff:/var/lib/docker/overlay2/95ea717ce9129f68d7d0894c/diff:/var/lib/docker/overlay2/49cf2548f3e28be0a/diff:/var/lib/docker/overlay2/36d2dca45620efab7d5/diff",
        "MergedDir": "/var/lib/docker/overlay2/271aa46cedf7db63ae21c1e246269/merged",
        "UpperDir": "/var/lib/docker/overlay2/271aa46cedf7db63afc5c1e246269/diff",
        "WorkDir": "/var/lib/docker/overlay2/271aa46cedf7dfc5c1e246269/work"
    },
	"Name": "overlay2"
 }
- LowerDir:包含容器内所有层的文件系统,最后一层除外
- UpperDir:容器最上层的文件系统。这也是反映任何运行时修改的地方。
- MergedDir:文件系统所有层的组合视图。
- WorkDir:用于管理文件系统的内部工作目录
得到如下目录即容器的文件系统,该文件系统内能找到add到image中的文件
/var/lib/docker/overlay2/756eb8b3d8663ff88c75c8b2cb24a5ea3d4762da69c68bd9c92bfe3c0c56b368/merged
docker history image
查看镜像的构建历史
docker history zhaojiew/simpleweb
IMAGE          CREATED        CREATED BY                                      SIZE      COMMENT
6a2afd7620b8   3 months ago   /bin/sh -c #(nop)  ENTRYPOINT ["bash" "entry…   0B
<missing>      3 months ago   /bin/sh -c #(nop) COPY dir:b3bfde9230ae02419…   367kB
<missing>      3 months ago   /bin/sh -c #(nop) WORKDIR /opt/web              0B
<missing>      3 months ago   /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B
<missing>      3 months ago   /bin/sh -c #(nop) ADD file:33ce740675602f891…   164MB
undocker
将image存储为压缩包之后解压,查看image内部文件
sudo docker pull amazonlinux:2
sudo docker save -o al2.tar amazonlinux:2
sudo tar xvf al2.tar
# sudo docker load -i al2.tar
查看分层
cat manifest.json
之后分别解压各层能查看到add到image中的文件
此外还有现成的undocker工具完成这件事,它会直接将所有层解压缩在一起
mkdir image
undocker extract zhaojiew/simpleweb ./image
dive
用于探索 docker 镜像层内容以及发现减小 docker 镜像大小的工具
这个工具能够包含之前所有命令的功能,包括查看层数,每层的文件系统目录和文件结构等
还有一个图形化的工具diving更方便查看
https://github.com/vicanso/diving
docker run -d --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -p 7001:7001 \
  vicanso/diving
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9rPMjXU3-1676540469297)(assets/image-20230216173955074.png)]](https://img-blog.csdnimg.cn/5113823cf7554c8c921029a064645630.png)


















