将Docker图像映射到本地文件系统中的实际层

将Docker图像映射到本地文件系统中的实际层,docker,containers,Docker,Containers,我正在尝试构建一个SystemInit工具,用于验证本地Docker映像是否未被更改。该工具将在每次系统启动(或重新启动)时运行,并验证构成映像的各个层的完整性。因为Docker守护进程还没有运行,所以我需要能够以编程方式确定构成每个映像的层 我从/var/lib/docker/image/overlay2/repositories.json开始,它包含本地映像及其映像ID和repo ID的列表。这些图像最终需要映射到/var/lib/docker/overlay2/{hash}/diff/下的

我正在尝试构建一个SystemInit工具,用于验证本地Docker映像是否未被更改。该工具将在每次系统启动(或重新启动)时运行,并验证构成映像的各个层的完整性。因为Docker守护进程还没有运行,所以我需要能够以编程方式确定构成每个映像的层

我从
/var/lib/docker/image/overlay2/repositories.json开始,它包含本地映像及其映像ID和repo ID的列表。这些图像最终需要映射到
/var/lib/docker/overlay2/{hash}/diff/
下的层。我已经搜索了文件、文件名和目录名,无论大小,都无法将repositories.json中的图像ID映射到
/var/lib/docker/overlay2/
下的哈希目录名,其中包含图像的实际文件系统。使用“docker image inspect{image}”可以很容易地找到这些哈希值——可以在JSON结果的[].GraphDriver.Data中找到

总之,我如何将
/var/lib/docker/image/overlay2/repositories.json中的图像映射到
/var/lib/docker/overlay2/{hash}/diff/
中的实际文件系统层,而不使用docker API或CLI?请注意,我谈论的是图像,而不是容器(图像的实例)