CC00017.CloudDocker——|Cloud&Docker存储.V02|——|存储驱动|

一、存储驱动
### --- Docker存储驱动(storage driver)是docker的核心组件,

~~~     它是docker实现分成镜像的基础
~~~     device mapper(DM):性能和稳定性存在问题,
~~~     不推荐生产环境中使用;DM会在centos7中较为老的版本中使用,
~~~     若是centos7的内核版本低于欧3.18版本;
~~~     overlayfs还没有进入主线版本,那主线版本呢当时是DM,
~~~     docker会退格使用DM的存储驱动。
~~~     # docker info:性能和稳定存在问题是相对与overlayfs来说的,
~~~     并不是差到不能用,推荐还是使用overlayfs
~~~     # Storage Driver: overlay:我们在安装的时候加入update的更新,
~~~     把版本更新到最新版本。若是没有更新,使用的centos7的版本比较老的话默认存储驱动就会是DM

~~~     # btrfs:社区实现了btrfs driver稳定性和性能存在问题;
~~~     是居于docker社区实现的,在非docker容器中也有在使用;对于DM来说相对好一点
~~~     # overlayfs:内核3.18overlayfs进入主线,性能和稳定性优异,第一选择;
~~~     在3.18以后,在centos中Redhat系列中才会进入到主线,Ubuntu16已进入主线。
[root@hub volumes]# docker info 
Storage Driver: overlay                 
btrfs
overlayf
### --- Docker  overlayfs driver 

[root@hub ~]# mount -t overlay overlay -olowerdir=./low,upperdir=./upper,workdir=./work ./merged
二、overlay工作过程
### --- overlay工作过程

[root@hub ~]# mkdir /var/overlay
[root@hub ~]# cd /var/overlay/
### --- 在overlay目录下创建这四个目录
[root@hub overlay]# mkdir low work upper merged 
~~~     work:       工作目录
~~~     low:        最下层 
~~~     upper:      中间层
~~~     merged:     用户的挂载层,最上层。

[root@hub overlay]# mount -t overlay overlay -olowerdir=./low,upperdir=./upper,workdir=./work ./merged      //挂载
[root@hub overlay]# mount 
overlay on /var/overlay/merged type overlay (rw,relatime,lowerdir=./low,upperdir=./upper,workdir=./work)    //显示挂载成功
[root@hub overlay]# vim low/1.txt
aaaaaaaaaaa
[root@hub overlay]# vim upper/2.txt
bbbbbbbbbbb
[root@hub overlay]# tree
.
├──low
│   └── 1.txt
├── merged                                          // merged为什么会出现1.txt和2.txt文件
│   └── 1.txt                                       // 自上而下去看,若是上面有的,下面都会显示出来;若是上面有的会把下面的覆盖掉;
│   └── 2.txt                                       // 显示复制的机制,自上而下的去看。
├── upper
│   └── 2.txt
└── work
    └── work
[root@hub overlay]# cat merged/1.txt 
aaaaaaaaaaaaaaaaaaaaaaaa
[root@hub overlay]# cat merged/2.txt 
bbbbbbbbbbbbbbbbbbbbbb
[root@hub overlay]# vim merged/1.txt 
aaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbb
[root@hub overlay]# cat low/1.txt                   // 最低层low层1.txt文件内容没有修改
aaaaaaaaaaaaaaaaaaaaaaaa
[root@hub overlay]# ls upper/                       // 而中间层upper出现了一个1.txt文件,
1.txt  2.txt                
[root@hub overlay]# cat upper/1.txt                 // 且1.txt文件变成我修改后的文件,而low层1.txt文件内容没有变化
aaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbb
[root@hub overlay]# rm -rf merged/1.txt             // 在用户挂载层最上层删除1.txt文件,
[root@hub overlay]# cat low/1.txt                   // 而low里面1.txt文件还是存在,文件内容还是aaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaa
[root@hub overlay]# ls -l  upper/                   // upper下1.txt文件依然存在,但是它的颜色发生变化了
c--------- 1 root root 0, 0 Jan  6 19:02 1.txt      // c标签,在overlay下代表这个文件已经被删除了
-rw-r--r-- 1 root root   23 Jan  6 18:48 2.txt      
[root@hub overlay]# rm -rf upper/1.txt              // 把upper下的1.txt文件删除掉
[root@hub overlay]# cat merged/1.txt                // merged下的1.txt文件又回来了,并且是之前的文件内容
aaaaaaaaaaaaaaaaaaaaaaaa
### --- 修改为overlayfs存储驱动:若我们的存储引擎不是overlay的情况下,建议改为overlay。

[root@hub ~]# echo "overlay" >/etc/modules-load.d/overlay.conf  // 先把overlay加载到模块加载中
[root@hub ~]# cat /proc/modules|grep overlay                    // 再去查看当前的模块加载方式
[root@hub ~]# reboot                                            // 重启
[root@hub ~]# vim /etc/systemd/system/docker.service                    
                    --storage-driver=overlay \                  // 并且把存储驱动改为overlay即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yanqi_vip

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

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

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

打赏作者

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

抵扣说明:

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

余额充值