K8S:Volume
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相关推荐
- 当SRS遇到K8s:如何构建海量推流源站?
Photo by Oscar Ivan Esquivel Arteaga on Unsplash 本文来自流媒体直播集群SRS的官方wiki(https://github.com/ossrs/srs/ ...
- 当SRS遇到K8s:如何实现高可用、回滚与灰度发布?
Photo by Luis Quintero from Pexels 本文来自流媒体直播集群SRS的官方wiki(https://github.com/ossrs/srs/wiki/v4_CN_K8s ...
- 【K8S系列】深入解析 k8s:入门指南(一)
目录 序言 1.背景介绍 2.前情提要 2.1 架构对比 2.2 容器技术 2.3 容器技术的优点 2.4 容器编排 3 K8S介绍 3.1 K8S是什么 3.2 K8S设计思想 3.3 K8S的优势 ...
- seaweedfs上传文件为什么要先申请文件号?(/dir/assign)(两种工作模式:Volume模式与Filer模式)(seaweed上传文件)
文章目录 SeaweedFS两种工作模式 Volume模式 Filer模式 总结 SeaweedFS两种工作模式 SeaweedFS是一个分布式文件系统,它有两种模式:Volume模式和Filer模式 ...
- Docker系列之五:Volume 卷的使用——以Redis为例
系列链接 Docker系列之一:Docker介绍及在Ubuntu上安装 Docker系列之二:Docker 入门 Docker系列之三:使用Docker镜像和仓库 Docker系列之四:Dockerf ...
- k8s使用volume将ConfigMap作为文件或目录直接挂载_Kubernetes in Action 06. 卷:将磁盘挂载到容器...
简介 P161 pod 中的每个容器都有自己独立的文件系统,因为文件系统来自容器镜像. P161 Kubernetes 中的卷是 pod 的一部分,并和 pod 共享相同的生命周期.这意味着 pod ...
- k8s使用volume将ConfigMap作为文件或目录直接挂载_NET Core + Kubernetes:Volume
和 Docker 类似,Kubernetes 中也提供了 Volume 来实现数据卷挂载,但 Kubernetes 中 Volume 是基于 Pod,而不是容器,它可被 Pod 中多个容器共享,另外 ...
- k8s使用volume将ConfigMap作为文件或目录直接挂载_从零开始入门 K8s | 如何实现应用配置管理?...
作者 | 何淋波(新胜) 阿里云容器服务技术专家 需求来源 背景问题 首先一起来看一下需求来源.大家应该都有过这样的经验,就是用一个容器镜像来启动一个 container.要启动这个容器,其实有很多需 ...
- 入门K8s:一键脚本搭建Linux服务器集群
前言 好久没有写系列博客了,本文主要是对网上文章的总结篇,主要是将安装和运行代码做了一次真机实验,亲测可用.文章内包含的脚本和代码,多来自于网络,也有我自己的调整和配置,文章末尾对参考的文献做了列举, ...
最新文章
- Realm 使用的简单教程
- jhipster创建项目问答汇总_[恭喜JHipster社区喜提 VueJS !]
- linux tcp阻塞socket recv接收数据 未达到指定长度返回问题
- memcache多语言unix socket访问
- 使用IntelliJ IDEA 2016创建maven管理的Java Web项目
- html5数据提交到mysql,保存html5画布作为数据到mysql数据库
- mysql 光标的作用_Mysql那些事儿之(十四)光标的使用_MySQL
- Java反射机制:表单数据自动封装到JavaBean中【IT】
- i9 9900k mysql_i9-9900K和9900KS有什么区别?i9-9900KS和i9-9900K区别对比评测
- 【英语学习】【Level 07】U02 Live Work L1 Welcome to my home
- 【微收藏】FourShadows.js – 时间感知的算法驱动的图标阴影JS库
- [USACO18DEC]The Cow Gathering
- Mybatis事务管理的两种方式
- python可以制作大型游戏_python能做游戏吗-python能开发游戏吗
- 手把手教你用键盘开机
- APP渠道推广手册(新手必备)
- 抢先看! Lumion 10 正式发布之核心功能预览
- 内核文件ntoskrnl.exe, ntkrnlpa.exe, ntkrnlmp.exe, ntkrpamp.exe到底有什么区别
- 本地局域网内添加DNS解析的方法
- 麒麟软件副总裁李震宁:中国开源社区是操作系统破局的土壤