怎么做虚拟机linux镜像文件

怎么做虚拟机linux镜像文件,第1张

1、启动Linux系统虚拟机的时候,点击“编辑虚拟机设置”--“CD/DVD”--“使用ISO镜像文件”点击“浏览”选择Linux系统的iso镜像。

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层


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8484084.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存