1.COW机制
COW技术原理(Copy On Write,写时复制)
- 针对随时变化的数据进行备份
- 直接映射原始盘的数据内容
- 当原始盘的旧数据有修改时,在修改之前自动将旧数据存入前端盘
- 对前端盘的修改不回写到原始盘
- 前端盘:永远显示在制作出前端盘那一瞬间原始盘所有数据内容
Docker镜像由多个只读层叠加而成,启动容器时,Docker会加载只读镜像层并在镜像栈顶部添加一个读写层。
如果运行中的容器修改了现有的一个已经存在的文件,那么该文件将会从读写层下面的只读层复制到读写层,该文件的只读版本依然存在,只是已经被读写层中该文件的副本所隐藏,这就是“写时复制(COW)”机制。
2.为什么要使用存储卷
对于这类的操作,修改删除等,一般效率非常低,如果对一于I/O要求比较高的应用,如redis在实现持化存储时,是在底层存储时的性能要求比较高。
假设底层运行一个存储库mysql,mysql本来对于I/O的要求就比较高,如果mysql又是运行在容器中自己的文件系统之上时,也就是容器在停止时,就意味着删除,其实现数据存取时效率比较低,要避免这个限制要使用存储卷来实现。
存在的问题:
- 存储于联合文件系统中,不易于宿主机访问;
- 容器间数据共享不便
- 删除容器其数据会丢失
解决方案:“卷(volume)”
“卷"是容器上的一个或多个"目录”;此类目录可绕过联合文件系统,与宿主机上的某目录"绑定(关联)"
3.存储卷
“卷”是容器上的一个或多个“目录”,此类目录可绕过联合文件系统,与宿主机上的某个目录“绑定(关联)”;
类似于挂载一样,宿主机的/da