docker中各ID之间的关系和计算(三)-overlay2和overlay

对于overlay2

从registry下载的image,保存在/var/lib/docker/overlay2/<cache-ID>

# docker pull ubuntu //3个layer层

# docker pull ubuntu:latest

Using default tag: latest

latest: Pulling from library/ubuntu

345e3491a907: Pull complete

57671312ef6f: Pull complete

5e9250ddb7d0: Pull complete

Digest: sha256:adf73ca014822ad8237623d388cedf4d5346aa72c270c5acc01431cc93e18e2d

Status: Downloaded newer image for ubuntu:latest

docker.io/library/ubuntu:latest
根据上面的docker中各ID之间的关系和计算(二)-layerID-diffID-chainID-cacheID的计算 从layerID最终计算出来一共有3个cacheID。但是出现了4个文件夹,包括3个层文件夹和l文件夹,其中l文件夹包含了软连接

我们查看一个层(这是最底层,也称为第1最底层)

#ls /var/lib/docker/overlay2/<cache-id>/

#ls /var/lib/docker/overlay2/a088c1e02d8a9681aa6456dbeae3eac98e8df8ac8b1f406b1ba697455466b1e2/

发现有一个文件link和一个文件夹diff,其中link包含了这个层对应的最短标识号,这个最短标识号和l文件夹中是一致的。而diff文件夹存储了这个层的具体内容。

# cat link

W3L3QHW2JRHQUJCXZYNEYR3XLX

# ls -al ../l/W3L3QHW2JRHQUJCXZYNEYR3XLX

第2最底层和更高的层,包含了一个文件lower,它指定了他的底层(父层)diff文件夹也是存储了这个层的具体内容merged文件夹包含了它和它的父层的合并内容,work文件夹提供Overlay内部使用。

根据第二层的chainID->cacheID:

#ls /var/lib/docker/overlay2/d7c5c6626a2749b791472a456a5adea90595fccbc5eb3a89773279ba834063ee

发现有除了link和diff,还包含了一个文件lower,它指定了他的底层(父层)的短merged文件夹包含了它和它的父层的合并内容,work文件夹提供Overlay内部使用。

lower保存了l/W3L3QHW2JRHQUJCXZYNEYR3XLX,也即是标识了上一层的cache-id。

link为53GPZKONCXHIM4YGCHOEWXZWII

对于第三层的chainID->cacheID

#ls

/var/lib/docker/overlay2/ddd5760e7cbfde67e325e77b540dfc13e7dccf1c7d1b156554d0a79378642bd1

也看一下lower:

l/53GPZKONCXHIM4YGCHOEWXZWII:l/W3L3QHW2JRHQUJCXZYNEYR3XLX

发现lower将层级叠加了起来。

总结:

算出来的这些恰恰是 inspect这个镜像的"GraphDriver": "Data“等值,如图所示:

其中

LowerDir分别为 两个底层的cache-id数值,diff文件夹里面是他们包含的内容。

UpperDir为当前这个最高层的cache-id,diff文件夹里面是本层的内容。

MergedDir为这三个层的组合路径为最高层的cache-id,merged文件夹里面包含的是三层的组合内容。

 

(略)对于overlay而言:

$ ls -l /var/lib/docker/overlay/<directory-of-running

-container>

total 16

-rw-r--r-- 1 root root   64 Jun 20 16:39 lower-id

drwxr-xr-x 1 root root 4096 Jun 20 16:39 merged

drwxr-xr-x 4 root root 4096 Jun 20 16:39 upper

drwx------ 3 root root 4096 Jun 20 16:39 work

lower-id表示了当前这个容器依赖的底层镜像id

upper文件夹包含了容器读写层的内容,对应于OverlayFS upperdir

Merged文件夹是组合了lowerdir和upperdir

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Penguinbupt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值