docker aufs与cow写时复制实验

/sys/fs/aufs/系统为挂载点建立的文件夹,包含权限管理
/var/lib/docker/aufs/diff//包含了子镜像存储的真实文件和目录
/var/lib/docker/aufs/mnt//挂载点
/var/lib/docker/aufs/layers//layer//存放镜像的祖先镜像列表的文件
/var/lib/docker/container//容器layer权限

测试,建立文件目录结构如下

hongjie-xu@hongjiexu-MS-7B89:~/dktest$ tree ../dktest
../dktest#测试文件夹
├── containerlayer#容器层 for rw
│   └── containerlayer.txt
├── imagelayer1
│   └── imagelayer1.txt
├── imagelayer2
│   └── imagelayer2.txt
└── imagelayer3
    └── imagelayer3.txt
└── mnt

此时挂载点建立的文件目录为空

hongjie-xu@hongjiexu-MS-7B89:~/dktest$ ls /sys/fs/aufs
config

挂载

hongjie-xu@hongjiexu-MS-7B89:~/dktest$ sudo mount -t aufs -o dirs=./containerlayer:./imagelayer1:./imagelayer2:./imagelayer3 none ./mnt
hongjie-xu@hongjiexu-MS-7B89:~/dktest$ tree ../dktest
../dktest
├── containerlayer
│   └── containerlayer.txt
├── imagelayer1
│   └── imagelayer1.txt
├── imagelayer2
│   └── imagelayer2.txt
├── imagelayer3
│   └── imagelayer3.txt
└── mnt
    ├── containerlayer.txt
    ├── imagelayer1.txt
    ├── imagelayer2.txt
    └── imagelayer3.txt

5 directories, 8 files
hongjie-xu@hongjiexu-MS-7B89:~/dktest$ ls /sys/fs/aufs
config  si_b149f18273e0b421

可以看到si_b149f18273e0b421文件夹被建立,里面内容是相关文件权限

hongjie-xu@hongjiexu-MS-7B89:~/dktest$ cat /sys/fs/aufs/si_b149f18273e0b421/*
/home/hongjie-xu/dktest/containerlayer=rw
/home/hongjie-xu/dktest/imagelayer1=ro
/home/hongjie-xu/dktest/imagelayer2=ro
/home/hongjie-xu/dktest/imagelayer3=ro
64
65
66
67
/home/hongjie-xu/dktest/containerlayer/.aufs.xino

向挂载点中的文件写入

hongjie-xu@hongjiexu-MS-7B89:~/dktest$ echo -e "hello word" >> ./mnt/imagelayer2.txt

hongjie-xu@hongjiexu-MS-7B89:~/dktest$ tree ../dktest/
../dktest/
├── containerlayer
│   ├── containerlayer.txt
│   └── imagelayer2.txt#多了这个文件
├── imagelayer1
│   └── imagelayer1.txt
├── imagelayer2
│   └── imagelayer2.txt#这个文件并没有发生变化
├── imagelayer3
│   └── imagelayer3.txt
└── mnt
    ├── containerlayer.txt
    ├── imagelayer1.txt
    ├── imagelayer2.txt#这个文件发生了变化
    └── imagelayer3.txt

5 directories, 9 files
hongjie-xu@hongjiexu-MS-7B89:~/dktest$ cat mnt/imagelayer2.txt
image 2
hello word
hongjie-xu@hongjiexu-MS-7B89:~/dktest$ cat imagelayer2/imagelayer2.txt 
image 2
hongjie-xu@hongjiexu-MS-7B89:~/dktest$ cat containerlayer/imagelayer2.txt 
image 2
hello word

总结:cow写时复制,往挂载的文件写时,会更新到可以读写的container layer中,原本的image layer不发生变化,即会将被修改的镜像层文件直接拷贝到容器层,进行修改,挂载的文件也会覆盖

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值