欢迎光临
我们一直在努力

Docker 容器存储原理(三)

Docker 和 Overlay2

使用 alpine 镜像创建一个容器 conoverlay 来看看其具体的存储使用情况:

root@docker-host:~# docker run –name conoverlay –rm -id alpine ash
e3ae88ad1b885154220ce00c881f02df696f4846e2ac6e0d78949a72d3eb9307
root@docker-host:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e3ae88ad1b88 alpine "ash" 5 seconds ago Up 4 seconds conoverlay
root@docker-host:~#

通过 docker inspect 命令查找 conoverlay 容器根目录:

root@docker-host:~# docker inspect conoverlay | grep UpperDir
"UpperDir": "/var/lib/docker/overlay2/c708a7b258e7c0a0d246bef7f14de3675c2f65eedefdc7807104159af1308ced/diff",
root@docker-host:~#

然后在 mount 输出中查找包含这个路径的 overlay 挂载:

root@docker-host:~# mount | grep "/var/lib/docker/overlay2/c708a7b258e7c0a0d246bef7f14de3675c2f65eedefdc7807104159af1308ced/diff"
overlay on /var/lib/docker/overlay2/c708a7b258e7c0a0d246bef7f14de3675c2f65eedefdc7807104159af1308ced/merged type overlay (rw,relatime,lowerdir=/var/lib/docker/overlay2/l/VMPJWGALI3EQTCCN3RM5TXM3LF:/var/lib/docker/overlay2/l/5XSW6AUA5UT7QGGYBEYB74U0NY,upperdir=/var/lib/docker/overlay2/c708a7b258e7c0a0d246bef7f14de3675c2f65eedefdc7807104159af1308ced/diff,workdir=/var/lib/docker/overlay2/c708a7b258e7c0a0d246bef7f14de3675c2f65eedefdc7807104159af1308ced/work,xino=off)
root@docker-host:~#

这个反白显示中的 merged 目录就是该容器的根文件系统挂载点。

root@docker-host:~# cd /var/lib/docker/overlay2/c708a7b258e7c0a0d246bef7f14de3675c2f65eedefdc7807104159af1308ced/merged
root@docker-host:/var/lib/docker/overlay2/c708a7b258e7c0a0d246bef7f14de3675c2f65eedefdc7807104159af1308ced/merged# ls -a
. bin .dockerenv home media opt root sbin sys usr
.. dev etc lib mnt proc run srv tmp var
root@docker-host:/var/lib/docker/overlay2/c708a7b258e7c0a0d246bef7f14de3675c2f65eedefdc7807104159af1308ced/merged#

直接进入 conoverlay 容器,查看容器内的文件系统:

对比后知道,conoverlay 容器的根文件系统,和 Linux 文件系统的 merged 挂载点是一致的。

在容器中创建一个测试文件:

bash

/ # touch /tmp/tempfile
/ # ls -l /tmp/tempfile
-rw-r–r– 1 root root 0 Jul 6 02:50 /tmp/tempfile
/ #

在容器挂载点 merged 目录验证:

root@docker-host:/var/lib/docker/overlay2/c708a7b258e7c0a0d246bef7f14de3675c2f65eedefdc7807104159af1308ced/merged# ls -l tmp/tempfile
-rw-r–r– 1 root root 0 Jul 6 02:50 tmp/tempfile
root@docker-host:/var/lib/docker/overlay2/c708a7b258e7c0a0d246bef7f14de3675c2f65eedefdc7807104159af1308ced/merged#

赞(0)
未经允许不得转载:171主机测评 » Docker 容器存储原理(三)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址