Docker镜像的目录存储讲解

我们成功安装完docker后,执行命令行sudo docker run hello-world, 如果是第一次执行,则会从远程拉取hello-world的镜像到本地,然后运行,显示hello world。

Docker镜像的目录存储讲解

以ubuntu系统为例,本地镜像存储于目录/var/lib/docker文件夹下:

Docker镜像的目录存储讲解

相关目录介绍如下。

/var/lib/docker/image/overlay2:存储镜像管理数据的目录,以使用的存储驱动命名,在我的ubuntu系统上,使用的驱动为overlay2。

Docker镜像的目录存储讲解

其中repositories.json文件相当于SAP UI5里的manifest.json, 以及nodejs项目中的project.json:

Docker镜像的目录存储讲解

/var/lib/docker/image/overlay2/distribution$: 从远端拉到本地的镜像相关元数据

Docker镜像的目录存储讲解

/var/lib/docker/image/overlay2/imagedb:镜像数据库

Docker镜像的目录存储讲解

/var/lib/docker/image/overlay2/imagedb/content:

每镜像层次的配置digest,也就是镜像ID。content文件夹里能看到一个sha256子文件夹。

Docker镜像的目录存储讲解

进入该子文件夹,会看到一个以镜像ID命名的文件,我们用命令行docker images看到的镜像ID的前12位就来自这个文件。

Docker镜像的目录存储讲解

/var/lib/docker/image/overlay2/layerdb: 镜像每个layer的元数据。

Docker镜像的目录存储讲解

进入sha256,会看到layer的chain ID:

Docker镜像的目录存储讲解

chain ID内的内容:

Docker镜像的目录存储讲解

Docker镜像的目录存储讲解

Docker镜像的目录存储讲解

Docker镜像的目录存储讲解

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

Docker镜像的目录存储讲解

相关推荐