2、进入Linux系统后,打开终端,用命令挂载光驱。
1
2
3
4
5
6
7
8
#创建一个目录用来挂载光驱
mkdir /mnt/cdrom
#挂载光驱
mount -t <a href="https://www.baidu.com/s?wd=iso9660&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YdPHPhPyPbuWNhnAnzuH990ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnWn3n1ndPHmY" target="_blank" class="baidu-highlight">iso9660</a>/dev/cdrom /mnt/cdrom
#挂载后,进入/mnt/cdrom就可以查看镜像文件了
cd /mnt/cdrom
#取消挂载使用如下命令:
我们知道,docker镜像一般由一个或多个layer层组成,docker镜像由image id唯一标识. 如何通过image id找到其layer层镜像文件,我们具体看下.
以如下nginx镜像为例演示
docker image ls命令可以查看所有镜像列表,其内容是存在repositories.json中,nginx镜像完整image id是b8cf2cbeabb915843204ceb7ef0055fecadd55c2b0c58ac030e01fe75235885a
在image/overlay2/imagedb/content/目录下,可以找到image id命名的镜像信息描述文件,其中的diff_id指向layer层.
通过diff_id并不能直接找到layer层的位置,diff_id首先指向的是/home/docker/image/overlay2/layerdb/下layer层描述文件,以chain id命名.
diff_id与chainid转换关系如下 :
ChainID = sha256sum(父层chainid + " " + 本层diff_id)
chainid 目录下cache-id即是layer层的文件名,得到diff_id、 chain_id、cache_id三者之间对应关系如下:
得到cache_id后,就可以在/home/docker/overlay2/目录找到image对应的layer层文件,如下:
可以看到lowdir由6个layer层+1个init层组成,init上面是upperdir + merged层
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)