docker中各ID之间的关系和计算(四)-mount-id的计算

对于mount-id来说,这是一个容器的挂载参数,需要把镜像运行起来。

1.首先运行进入Ubuntu系统命令:
# docker run -it ubuntu bash

2.通过查看容器的inspect

# docker inspect <containerID>

# docker inspect e45a43807df6 

打印出来:

 "GraphDriver": {
            "Data": {
"LowerDir": "/var/lib/docker/overlay2/6f8e18760305a7290b7a12804a03bdfd13a486e320d989d99158fec489c4d00e-init/diff:

/var/lib/docker/overlay2/ddd5760e7cbfde67e325e77b540dfc13e7dccf1c7d1b156554d0a79378642bd1/diff:

/var/lib/docker/overlay2/d7c5c6626a2749b791472a456a5adea90595fccbc5eb3a89773279ba834063ee/diff:

/var/lib/docker/overlay2/a088c1e02d8a9681aa6456dbeae3eac98e8df8ac8b1f406b1ba697455466b1e2/diff",       

"MergedDir": "/var/lib/docker/overlay2/6f8e18760305a7290b7a12804a03bdfd13a486e320d989d99158fec489c4d00e/merged",

"UpperDir": "/var/lib/docker/overlay2/6f8e18760305a7290b7a12804a03bdfd13a486e320d989d99158fec489c4d00e/diff",
"WorkDir": "/var/lib/docker/overlay2/6f8e18760305a7290b7a12804a03bdfd13a486e320d989d99158fec489c4d00e/work"
            },
          "Name": "overlay2"
  },

如下图所示:

其中LowerDir都是底层的cache-id,还包括了顶层的init层,均为diff 文件夹包含的内容。

init层在lowerDir中,同样,也是存在/var/lib/docker/overlay2/<mount-id>-init/diff,即底层的依赖层都在LowerDir中。

/var/lib/docker/overlay2/ddd5760e7cbfde67e325e77b540dfc13e7dccf1c7d1b156554d0a79378642bd1/diff:

/var/lib/docker/overlay2/d7c5c6626a2749b791472a456a5adea90595fccbc5eb3a89773279ba834063ee/diff:

/var/lib/docker/overlay2/a088c1e02d8a9681aa6456dbeae3eac98e8df8ac8b1f406b1ba697455466b1e2/diff",     

cache-id 相当于cacheID都是底层数据,这些值为docker中各ID之间的关系和计算(二)-layerID-diffID-chainID-cacheID的计算 的计算值。

而UpperDir是最顶层的mount-id,是container layer属于容器层,也是diff包含了内容。

MergedDir中/var/lib/docker/overlay2/<mount-id>/merged,属于合并层。

 

3.这些inspect信息保存在了/var/lib/docker/image/overlay2/layerdb/mounts下:

# cd /var/lib/docker/image/overlay2/layerdb/mounts

# cd <container-id>     //某个容器的id

# ls

发现里面有init-id、mount-id、parent三个文件。

Init-id存储了init层的编号,和mount-id一致。

parent包含了最高层的chainID,也就是说通过最高层的chainID,再找其真正的cache-id,

3dd8c8d4fd5b59d543c8f75a67cdfaab30aef5a6d99aea3fe74d8cc69d4e7bf2   chainID ,也就是说chainID为逻辑上的,实际使用的为cache-id.

# cat mount-id // 查看mount id号

# mount | grep overlay

# cd /var/lib/docker/overlay2/<mount-id>

包含了一个文件lower,它指定了他的底层(父层),diff文件夹也是存储了这个层的具体内容,merged文件夹包含了它和它的底(父)层的合并内容这就是镜像+容器的所有内容,work文件夹提供Overlay内部使用,这些同理上一篇文章 docker中各ID之间的关系和计算(三)-overlay2和overlay

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Penguinbupt

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

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

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

打赏作者

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

抵扣说明:

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

余额充值