7.overlay和overlay2存储驱动

OverlayFS是一个类似于AUFS 的现代联合文件系统,更快实现简单。 

OverlayFS是内核提供的文件系统,overlay和overlay2是docker的存储驱动。

OverlayFS将单个Linux主机上的多个目录合并成一个目录。这些目录被称为层,统一过程被称为联合挂载。OverlayFS底层目录称为lowerdir, 高层目录称为upperdir。合并统一视图称为merged。当需要修改一个文件时,使用CoW将文件从只读的Lower复制到可写的Upper进行修改,结果也保存在Upper层。在Docker中,底下的只读层就是image,可写层就是Container。

下图分层图,镜像层是lowdir,容器层是upperdir,统一的视图层是merged层

拉取镜像

[root@K8SAP2 ~]# docker pull centos

Using default tag: latest

latest: Pulling from library/centos

6910e5a164f7: Pull complete

Digest: sha256:4062bbdd1bb0801b0aa38e0f83dece70fb7a5e9bce223423a68de2d8b784b43b

Status: Downloaded newer image for centos:latest

docker.io/library/centos:latest

[root@JXQVKK8SAP2 ~]# ls /var/lib/docker/overlay2/

c927b7ed5f2d88d56eb5f4136b77faf290f96da4e159c508591f8bf78f40bd45  l

[root@K8SAP2 ~]# ls /var/lib/docker/overlay2/c927b7ed5f2d88d56eb5f4136b77faf290f96da4e159c508591f8bf78f40bd45/

diff  link

[root@JXQVKK8SAP2 ~]# ls /var/lib/docker/overlay2/c927b7ed5f2d88d56eb5f4136b77faf290f96da4e159c508591f8bf78f40bd45/diff/

bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

[root@K8SAP2 ~]# ll -l /var/lib/docker/overlay2/l/

总用量 0

lrwxrwxrwx 1 root root 72 6月  17 10:13 ZNWQ3TA3VWLXXTINHUR6SLCRSR -> ../c927b7ed5f2d88d56eb5f4136b77faf290f96da4e159c508591f8bf78f40bd45/diff

[root@K8SAP2 ~]# ll  /var/lib/docker/overlay2/l/ZNWQ3TA3VWLXXTINHUR6SLCRSR/

总用量 4

lrwxrwxrwx  1 root root    7 5月  11 2019 bin -> usr/bin

drwxr-xr-x  2 root root    6 6月  11 10:35 dev

drwxr-xr-x 51 root root 4096 6月  11 10:35 etc

drwxr-xr-x  2 root root    6 5月  11 2019 home

lrwxrwxrwx  1 root root    7 5月  11 2019 lib -> usr/lib

lrwxrwxrwx  1 root root    9 5月  11 2019 lib64 -> usr/lib64

drwx------  2 root root    6 6月  11 10:35 lost+found

drwxr-xr-x  2 root root    6 5月  11 2019 media

drwxr-xr-x  2 root root    6 5月  11 2019 mnt

drwxr-xr-x  2 root root    6 5月  11 2019 opt

drwxr-xr-x  2 root root    6 6月  11 10:35 proc

dr-xr-x---  2 root root  162 6月  11 10:35 root

drwxr-xr-x 11 root root  163 6月  11 10:35 run

lrwxrwxrwx  1 root root    8 5月  11 2019 sbin -> usr/sbin

drwxr-xr-x  2 root root    6 5月  11 2019 srv

drwxr-xr-x  2 root root    6 6月  11 10:35 sys

drwxrwxrwt  7 root root  145 6月  11 10:35 tmp

drwxr-xr-x 12 root root  144 6月  11 10:35 usr

drwxr-xr-x 20 root root  262 6月  11 10:35 var

启动一个容器

docker run -it centos /bin/bash

cd /tmp/

touch aaa

docker commit --author "cuihao" --message "测试" suspicious_jang centos:v1

[root@K8SAP2 ~]# ll /var/lib/docker/overlay2/

总用量 0

drwx------ 5 root root  69 6月  17 10:35 1646a988c2a92439815d25bb3908bcd28e0567f0df433e919378086f85aa2208

drwx------ 4 root root  72 6月  17 10:36 1646a988c2a92439815d25bb3908bcd28e0567f0df433e919378086f85aa2208-init

drwx------ 4 root root  55 6月  17 10:37 ae65fd82a79e1fe22016749cb3eae62984803ad6d5dd9f2b09c2a63847842a2c

drwx------ 3 root root  47 6月  17 10:35 c927b7ed5f2d88d56eb5f4136b77faf290f96da4e159c508591f8bf78f40bd45

drwx------ 2 root root 142 6月  17 10:37 l

[root@K8SAP2 ~]# ls /var/lib/docker/overlay2/ae65fd82a79e1fe22016749cb3eae62984803ad6d5dd9f2b09c2a63847842a2c/

diff  link  lower  work

[root@K8SAP2 ~]# ls /var/lib/docker/overlay2/ae65fd82a79e1fe22016749cb3eae62984803ad6d5dd9f2b09c2a63847842a2c/diff/

tmp

[root@K8SAP2 ~]# ls /var/lib/docker/overlay2/ae65fd82a79e1fe22016749cb3eae62984803ad6d5dd9f2b09c2a63847842a2c/diff/tmp/

aaa

[root@K8SAP2 ~]# ll /var/lib/docker/overlay2/1646a988c2a92439815d25bb3908bcd28e0567f0df433e919378086f85aa2208

总用量 8

drwxr-xr-x 3 root root 17 6月  17 10:35 diff

-rw-r--r-- 1 root root 26 6月  17 10:35 link

-rw-r--r-- 1 root root 57 6月  17 10:35 lower

drwxr-xr-x 1 root root 17 6月  17 10:35 merged

drwx------ 3 root root 18 6月  17 10:35 work

[root@K8SAP2 ~]# cat /var/lib/docker/overlay2/1646a988c2a92439815d25bb3908bcd28e0567f0df433e919378086f85aa2208/lower

l/POQQI3CWQL3JKXEHL3UGFGX6UP:l/ZNWQ3TA3VWLXXTINHUR6SLCRSR

[root@K8SAP2 ~]# ll /var/lib/docker/overlay2/l/

总用量 0

lrwxrwxrwx 1 root root 72 6月  17 10:35 HLHI6Q2NYJKL6QZP2DJ2MD36W7 -> ../1646a988c2a92439815d25bb3908bcd28e0567f0df433e919378086f85aa2208/diff

lrwxrwxrwx 1 root root 72 6月  17 10:37 OJGBQO4PPDIKKMRSXIMMSFW3EO -> ../ae65fd82a79e1fe22016749cb3eae62984803ad6d5dd9f2b09c2a63847842a2c/diff

lrwxrwxrwx 1 root root 77 6月  17 10:35 POQQI3CWQL3JKXEHL3UGFGX6UP -> ../1646a988c2a92439815d25bb3908bcd28e0567f0df433e919378086f85aa2208-init/diff

lrwxrwxrwx 1 root root 72 6月  17 10:13 ZNWQ3TA3VWLXXTINHUR6SLCRSR -> ../c927b7ed5f2d88d56eb5f4136b77faf290f96da4e159c508591f8bf78f40bd45/diff

[root@JXQVKK8SAP2 ~]# ll /var/lib/docker/overlay2/1646a988c2a92439815d25bb3908bcd28e0567f0df433e919378086f85aa2208/merged/tmp/

总用量 8

-rw-r--r-- 1 root root    0 6月  17 10:35 aaa

-rwx------ 1 root root 1379 6月  11 10:35 ks-script-585nin8f

-rwx------ 1 root root  671 6月  11 10:35 ks-script-z6zw_bhq

使用Dockerfile构建镜像

命令挂载

mount -t overlay overlay -o lowerdir=lower1:lower2:lower3,upperdir=upper,workdir=work merged_dir

你可能感兴趣的:(7.overlay和overlay2存储驱动)