第 6 章 存储 - 039 - Data Volume 之 bind mount
Data Volume
Data Volume 本质上是 Docker Host 文件系统中的目录或文件,能够直接被 mount 到容器的文件系统中。
Data Volume 有以下特点:
1、Data Volume 是目录或文件,而不是没有格式化的磁盘(块设备)
2、容器可以读写 volume 中的数据
3、volume 数据可以被永久的保存,即使使用它的容器已经销毁
下面几个场景:
1、Database 软件 vs Database 数据
2、Web 应用 vs 应用产生的日志
3、数据分析软件 vs input/output 数据
4、Apache Server vs 静态 HTML 文件
存储方案应该是这样的:
1、前者放在数据层中。因为这部分内容是无状态的,应该作为镜像的一部分
2、后者放在 Data Volume 中。这是需要持久化的数据,并且应该与镜像分开存放
docker 提供了两种类型的 volume:
bind mount
docker managed volume
bind mount
将 host 上已存在的目录或文件 mount 到容器
-v 的格式为 <host path>:<container path>
/usr/local/apache2/htdocs 就是 apache server 存放静态文件的地方。由于 /usr/local/apache2/htdocs 已经存在,原有数据会被隐藏起来,取而代之的是 host $HOME/htdocs/ 中的数据
docker run -d -p 80:80 -v /root/htdocs:/usr/local/apache2/htdocs httpd
更新一下/root/htdocs/index.html 中的内容,再查看一下
Docker host 中的修改确实生效了,bind mount 可以让 host 与容器共享数据。这在管理上是非常方便的。
将容器删除了,bind mount 也还在
bind mount 时还可以指定数据的读写权限,默认是可读可写,可指定为只读:
docker run -d -p 80:80 -v /root/htdocs:/usr/local/apache2/htdocs:ro httpd
除了 bind mount 目录,还可以单独指定一个文件:
docker run -d -p 80:80 -v /root/htdocs/index.html:/usr/local/apache2/htdocs/new_index.html httpd
使用 bind mount 单个文件的场景是:只需要向容器添加文件,不希望覆盖整个目录的数据。
注意:host 中的源文件必须要存在,不然会当作一个新目录 bind mount 给容器
mount point 的应用场景:
1、将源代码目录 mount 到容器中,在 host 中修改代码就能看到应用的实时效果
2、将 mysql 容器的数据放在 bind mount 里,这样 host 可以方便地备份和迁移数据
bind mount 的缺点:
bind mount 需要指定 host 文件系统的特定路径,这就限制了容器的可移植性,当需要将容器迁移到其他 host,而该 host 没有要 mount 的数据或者数据不在相同的路径时,操作会失败。
-----------------------------------------------引用来自----------------------------------------------------------------------
https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587711&idx=1&sn=271538bc7b5a8c0684d629604271189a&chksm=8d3080e6ba4709f0ba0335379ca6c4a270a1811de404144ff653a807930f13b3cb8bd934a5de&scene=21#wechat_redirect
第 6 章 存储 - 039 - Data Volume 之 bind mount的更多相关文章
- Data Volume 之 bind mount - 每天5分钟玩转 Docker 容器技术(39)
storage driver 和 data volume 是容器存放数据的两种方式,上一节我们学习了 storage driver,本节开始讨论 Data Volume. Data Volume 本质 ...
- 039、Data Volume 之 bind mount (2019-02-28 周四)
参考https://www.cnblogs.com/CloudMan6/p/7142150.html Date Volume 本质上是Dokcer host文件系统中的目录或者文件,能够直接被 ...
- 37-Data Volume 之 bind mount
storage driver 和 data volume 是容器存放数据的两种方式,上一节我们学习了 storage driver,本节开始讨论 Data Volume. Data Volume 本质 ...
- docker的volume和bind mount究竟有什么区别?
不知道你在使用docker的时候,有没有注意到volume mount和bind mount的使用? 进一步说,他们之间的区别到底是什么? 接下来的内容,我们就为你揭开他们的神秘面纱. 相同之处 首先 ...
- 第 6 章 存储 - 042 - 用 volume container 共享数据
volume container volume container 是专门为其他容器提供 volume 的容器.它提供的卷可以是 bind mount,也可以是 docker managed volu ...
- 第 6 章 存储 - 043 - data-packed volume container
data-packed volume container 将数据打包到镜像中,然后通过 docker managed volume 共享 1.先用Dockerfile 构建镜像 ADD 将静态文件添加 ...
- 将数据挂载到 docker 容器中的3种方式:volume、bind mount、tmpfs
出处:https://deepzz.com/post/the-docker-volumes-basic.html
- centos7下安装docker(13.1docker存储--data volume)
我们现在知道docker 有两种存储方式:storage driver和data volume stroage driver这种存储方式主要是存储那些无状态的数据,是镜像层和容器层组成的,而data ...
- 第 6 章 存储 - 040 - docker managed volume
docker managed volume 与 bind mount 在最大区别是不需要指定 mount 源,指明 mount point 就行了 通过 -v 告诉 docker 需要一个 data ...
随机推荐
- Keil uVision4 创建51单片机工程
Keil uVision4 创建51单片机工程 版权声明:未经授权,严禁转载! 在学习51单片机的过程当中,我们需要使用 Keil uVision4 来创建一个项目,今天就来图示一下创建的流程. 首先 ...
- 头像上传uploadPreview插件
原文链接:https://blog.csdn.net/Alisa_L/article/details/52923953 uploadPreview 今天写头像上传,使用到uploadPreview插件 ...
- Java基础——javaMail:使用心得
想要做一个java发送邮件小功能. 使用的maven搭建的项目. <!-- https://mvnrepository.com/artifact/javax.mail/mail -->&l ...
- shell 编程中的 知识点 - 突然一下子就明白很多东西了
按自己的意愿生活, 而且是::: 要敢于按自己的意志去活! 那是一种胆量和勇气!! shell中的结构, 只有选择(实际上if条件也是一种选择结构)和循环, 都是用关键字来替代 大括号的. 如: if ...
- LOJ121 「离线可过」动态图连通性
思路 动态图连通性的板子,可惜我不会在线算法 离线可以使用线段树分治,每个边按照存在的时间插入线段树的对应节点中,最后再dfs一下求出解即可,注意并查集按秩合并可以支持撤销操作 由于大量使用STL跑的 ...
- Paper Reading: Perceptual Generative Adversarial Networks for Small Object Detection
Perceptual Generative Adversarial Networks for Small Object Detection 2017-07-11 19:47:46 CVPR 20 ...
- 配置和运行 MatchNet CVPR 2015 MatchNet: Unifying Feature and Metric Learning for Patch-Based Matching
配置和运行 MatchNet CVPR 2015 GitHub: https://github.com/hanxf/matchnet 最近一个同学在配置,测试这个网络,但是总是遇到各种问题. 我也尝试 ...
- Derek解读Bytom源码-创世区块
作者:Derek 简介 Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom ...
- Kubernetes之Controllers三
StatefulSets StatefulSet is the workload API object used to manage stateful applications. Note: Stat ...
- 洛谷P2362 围栏木桩----dp思路
在翻dp水题的时候找到的有趣的题0v0 原文>>https://www.luogu.org/problem/show?pid=2362<< 题目描述 某农场有一个由按编号排列的 ...