详解docker pull下来的镜像存储在哪里

(编辑:jimmy 日期: 2024/12/23 浏览:2)

20200804补充:文章可能说法有误。大佬可查询其他答案。

docker pull xxx,就可以把想要的镜像拉下来直接使用,但是pull下来的镜像存储在哪里呢?这里做下记录:

此处docker 版本为:Docker version 1.13.1

1. 进入docker目录,如下:

root@iZuf6axmuekh1n14dwcufmZ:/# cd var/lib/docker/
root@iZuf6axmuekh1n14dwcufmZ:/var/lib/docker# ls
aufs containers image network plugins swarm tmp trust volumes

2. 进入containers,每一个序列号,都是一个镜像,如下:

cd containers/
2addde372f5b4850ab167f1067db525313e1569e7117074841cc171acca7621d 4ce1634ce6f17474c8e6696bcf428e621f8c9572e1387316cf8183c97f4ad271

3.进入其中一个镜像,发现目录结构如下,这就是这个镜像的内容了,如下:

cd 2addde372f5b4850ab167f1067db525313e1569e7117074841cc171acca7621d/
2addde372f5b4850ab167f1067db525313e1569e7117074841cc171acca7621d-json.log checkpoints config.v2.json hostconfig.json hostname hosts resolv.conf resolv.conf.hash shm

4.在containers同级目录,有个叫image的文件夹,进入如下:

cd images/aufs 
distribution imagedb layerdb repositories.json

里面有个repositories.json的文件,详细记录了镜像的一些信息:

{"Repositories":{"mysql":{"mysql:latest":"sha256:7d83a47ab2d2d0f803aa230fdac1c4e53d251bfafe9b7265a3777bcc95163755","mysql@sha256:1f95a2ba07ea2ee2800ec8ce3b5370ed4754b0a71d9d11c0c35c934e9708dcf1":"sha256:7d83a47ab2d2d0f803aa230fdac1c4e53d251bfafe9b7265a3777bcc95163755"},"tomcat":{"tomcat:latest":"sha256:3dcfe809147daf54fbdbe1f6886b4c49df63f28e2b3c8ac119fef6a7f7490d3c","tomcat@sha256:d167fd5df11d7a7f7a3b04bd08a021948c67c92932ed38c740296c2ae69f67a3":"sha256:3dcfe809147daf54fbdbe1f6886b4c49df63f28e2b3c8ac119fef6a7f7490d3c"}}}

(如果image没有aufs目录的,可能是这样的

 [root@izbp163wlhi02tcaxyu image]# ls
overlay2
[root@izbp163wlhi02tcaxyu image]# cd overlay2/
[root@izbp163wlhi02tcaxyu overlay2]# ls
distribution imagedb layerdb repositories.json

命令行如下:

详解docker pull下来的镜像存储在哪里