Volume(数据卷)

  • 容器里进程新建的文件,怎么才能让宿主机获取到?宿主机上的文件和目录,怎么才能让容器里的进程访问到?
  • Volume 机制,允许将宿主机上指定的目录或者文件,挂载到容器里面进行读取和修改操作
  • docker命令支持两种Volume声明,将宿主目录挂载到容器的/test中。
$ docker run -v /test ...
$ docker run -v /home:/test ...

实现原理

  • 当容器进程被创建之后,尽管开启了 Mount Namespace,但是在它执行 chroot(或者 pivot_root)之前,容器进程一直可以看到宿主机上的整个文件系统
  • 而宿主机上的文件系统,也自然包括了我们要使用的容器镜像。这个镜像的各个层,保存在 /var/lib/docker/aufs/diff 目录下,在容器进程启动后,它们会被联合挂载在 /var/lib/docker/aufs/mnt/ 目录中,这样容器所需的 rootfs 就准备好
  • 所以,我们只需要在 rootfs 准备好之后,在执行 chroot 之前,把 Volume 指定的宿主机目录(比如 /home 目录),挂载到指定的容器目录(比如 /test 目录)在宿主机上对应的目录(即 /var/lib/docker/aufs/mnt/[可读写层 ID]/test)上,这个 Volume 的挂载工作就完成了。
  • 更重要的是,由于执行这个挂载操作时,“容器进程”已经创建了,也就意味着此时 Mount Namespace 已经开启了。所以,这个挂载事件只在这个容器里可见。你在宿主机上,是看不见容器内部的这个挂载点的。这就保证了容器的隔离性不会被 Volume 打破

K8S:Volume相关推荐

  1. 当SRS遇到K8s:如何构建海量推流源站?

    Photo by Oscar Ivan Esquivel Arteaga on Unsplash 本文来自流媒体直播集群SRS的官方wiki(https://github.com/ossrs/srs/ ...

  2. 当SRS遇到K8s:如何实现高可用、回滚与灰度发布?

    Photo by Luis Quintero from Pexels 本文来自流媒体直播集群SRS的官方wiki(https://github.com/ossrs/srs/wiki/v4_CN_K8s ...

  3. 【K8S系列】深入解析 k8s:入门指南(一)

    目录 序言 1.背景介绍 2.前情提要 2.1 架构对比 2.2 容器技术 2.3 容器技术的优点 2.4 容器编排 3 K8S介绍 3.1 K8S是什么 3.2 K8S设计思想 3.3 K8S的优势 ...

  4. seaweedfs上传文件为什么要先申请文件号?(/dir/assign)(两种工作模式:Volume模式与Filer模式)(seaweed上传文件)

    文章目录 SeaweedFS两种工作模式 Volume模式 Filer模式 总结 SeaweedFS两种工作模式 SeaweedFS是一个分布式文件系统,它有两种模式:Volume模式和Filer模式 ...

  5. Docker系列之五:Volume 卷的使用——以Redis为例

    系列链接 Docker系列之一:Docker介绍及在Ubuntu上安装 Docker系列之二:Docker 入门 Docker系列之三:使用Docker镜像和仓库 Docker系列之四:Dockerf ...

  6. k8s使用volume将ConfigMap作为文件或目录直接挂载_Kubernetes in Action 06. 卷:将磁盘挂载到容器...

    简介 P161 pod 中的每个容器都有自己独立的文件系统,因为文件系统来自容器镜像. P161 Kubernetes 中的卷是 pod 的一部分,并和 pod 共享相同的生命周期.这意味着 pod ...

  7. k8s使用volume将ConfigMap作为文件或目录直接挂载_NET Core + Kubernetes:Volume

    和 Docker 类似,Kubernetes 中也提供了 Volume 来实现数据卷挂载,但 Kubernetes 中 Volume 是基于 Pod,而不是容器,它可被 Pod 中多个容器共享,另外 ...

  8. k8s使用volume将ConfigMap作为文件或目录直接挂载_从零开始入门 K8s | 如何实现应用配置管理?...

    作者 | 何淋波(新胜) 阿里云容器服务技术专家 需求来源 背景问题 首先一起来看一下需求来源.大家应该都有过这样的经验,就是用一个容器镜像来启动一个 container.要启动这个容器,其实有很多需 ...

  9. 入门K8s:一键脚本搭建Linux服务器集群

    前言 好久没有写系列博客了,本文主要是对网上文章的总结篇,主要是将安装和运行代码做了一次真机实验,亲测可用.文章内包含的脚本和代码,多来自于网络,也有我自己的调整和配置,文章末尾对参考的文献做了列举, ...

最新文章

  1. Realm 使用的简单教程
  2. jhipster创建项目问答汇总_[恭喜JHipster社区喜提 VueJS !]
  3. linux tcp阻塞socket recv接收数据 未达到指定长度返回问题
  4. memcache多语言unix socket访问
  5. 使用IntelliJ IDEA 2016创建maven管理的Java Web项目
  6. html5数据提交到mysql,保存html5画布作为数据到mysql数据库
  7. mysql 光标的作用_Mysql那些事儿之(十四)光标的使用_MySQL
  8. Java反射机制:表单数据自动封装到JavaBean中【IT】
  9. i9 9900k mysql_i9-9900K和9900KS有什么区别?i9-9900KS和i9-9900K区别对比评测
  10. 【英语学习】【Level 07】U02 Live Work L1 Welcome to my home
  11. 【微收藏】FourShadows.js – 时间感知的算法驱动的图标阴影JS库
  12. [USACO18DEC]The Cow Gathering
  13. Mybatis事务管理的两种方式
  14. python可以制作大型游戏_python能做游戏吗-python能开发游戏吗
  15. 手把手教你用键盘开机
  16. APP渠道推广手册(新手必备)
  17. 抢先看! Lumion 10 正式发布之核心功能预览
  18. 内核文件ntoskrnl.exe, ntkrnlpa.exe, ntkrnlmp.exe, ntkrpamp.exe到底有什么区别
  19. 本地局域网内添加DNS解析的方法
  20. 麒麟软件副总裁李震宁:中国开源社区是操作系统破局的土壤

热门文章

  1. python闰年判断 从儒略历到格里高利历 公历历史
  2. web编程期中大作业
  3. 点石互动--kyw之:Google优化圣经翻译
  4. Linux如何安装rpm文件
  5. 【Python】Python下载及安装(windows系统)
  6. java枚举类型及枚举集合
  7. 关于年份和月份的计算
  8. align-content 和align-items的区别
  9. 【系统分析师之路】系统分析师下午案例模拟题(2021版)
  10. CSAPP 程序人生