容器学习 之 共享数据(十六)
容器与 host 共享数据
我们有两种类型的 data volume,它们均可实现在容器与 host 之间共享数据,但方式有所区别。
对于 bind mount 是非常明确的:直接将要共享的目录 mount 到容器。具体请参考前面 httpd 的例子,不再赘述。
docker managed volume 就要麻烦点。由于 volume 位于 host 中的目录,是在容器启动时才生成,所以需要将共享数据拷贝到 volume 中。请看下面的例子:
容器之间共享数据
第一种方法是将共享数据放在 bind mount 中,然后将其 mount 到多个容器。
第二种方法是用 volume container 共享数据
colume container 是专门为其他容器提供 volume 的容器。
我们将容器命名为 vc_data(vc 是 volume container 的缩写)。注意这里执行的是 docker create 命令,这是因为 volume container 的作用只是提供数据,它本身不需要处于运行状态。容器 mount 了两个 volume:
通过 docker inspect 可以查看到这两个 volume。
docker inspect vc_data
"Mounts": [{"Source": "/root/htdocs","Destination": "/usr/local/apache2/htdocs","Mode": "","RW": true,"Propagation": "rprivate"},{"Name": "1b603669398d117e499449862636a56c4f4c804d447c680e7b3ba7c7f5e52205","Source": "/var/lib/docker/volumes/1b603669398d117e499449862636a56c4f4c804d447c680e7b3ba7c7f5e52205/_data","Destination": "/other/useful/tools","Driver": "local","Mode": "","RW": true,"Propagation": ""}],
其他容器可以通过 --volumes-from 使用 vc_data 这个 volume container:
web1 容器使用的就是 vc_data 的 volume,而且连 mount point 都是一样的。验证一下数据共享的效果:
第三种方法
volume container 的数据归根到底还是在 host 里,有没有办法将数据完全放到 volume container 中,同时又能与其他容器共享呢?当然可以,通常我们称这种容器为 data-packed volume container。其原理是将数据打包到镜像中,然后通过 docker managed volume 共享。
我们用下面的 Dockfile 构建镜像:
ADD 将静态文件添加到容器目录 /usr/local/apache2/htdocs。
VOLUME 的作用与 -v 等效,用来创建 docker managed volume,mount point 为 /usr/local/apache2/htdocs,因为这个目录就是 ADD 添加的目录,所以会将已有数据拷贝到 volume 中
build 新镜像 datapacked:
用新镜像创建 data-packed volume container:
因为在 Dockerfile 中已经使用了 VOLUME 指令,这里就不需要指定 volume 的 mount point 了。启动 httpd 容器并使用 data-packed volume container:
容器能够正确读取 volume 中的数据。data-packed volume container 是自包含的,不依赖 host 提供数据,具有很强的移植性,非常适合 只使用 静态数据的场景,比如应用的配置信息、web server 的静态文件等。
容器学习 之 共享数据(十六)相关推荐
- 深度学习入门笔记(十六):计算机视觉之边缘检测
欢迎关注WX公众号:[程序员管小亮] 专栏--深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具 ...
- 窗口消息——Windows核心编程学习手札之二十六
窗口消息 --Windows核心编程学习手札之二十六 Windows允许一个进程至多建立10000个不同类型的用户对象(user object):图符.光标.窗口类.菜单.加速键表等,当一个线程调用一 ...
- OpenCV学习笔记(四十六)——FAST特征点检测features2D OpenCV学习笔记(四十七)——VideoWriter生成视频流highgui OpenCV学习笔记(四十八)——PCA算
OpenCV学习笔记(四十六)--FAST特征点检测features2D 特征点检测和匹配是计算机视觉中一个很有用的技术.在物体检测,视觉跟踪,三维常年关键等领域都有很广泛的应用.这一次先介绍特征点检 ...
- OpenCV学习笔记(三十六)——Kalman滤波做运动目标跟踪 OpenCV学习笔记(三十七)——实用函数、系统函数、宏core OpenCV学习笔记(三十八)——显示当前FPS OpenC
OpenCV学习笔记(三十六)--Kalman滤波做运动目标跟踪 kalman滤波大家都很熟悉,其基本思想就是先不考虑输入信号和观测噪声的影响,得到状态变量和输出信号的估计值,再用输出信号的估计误差加 ...
- OpenCV学习笔记(二十六)——小试SVM算法ml OpenCV学习笔记(二十七)——基于级联分类器的目标检测objdect OpenCV学习笔记(二十八)——光流法对运动目标跟踪Video Ope
OpenCV学习笔记(二十六)--小试SVM算法ml 总感觉自己停留在码农的初级阶段,要想更上一层,就得静下心来,好好研究一下算法的东西.OpenCV作为一个计算机视觉的开源库,肯定不会只停留在数字图 ...
- VTK学习笔记(三十六)VTK图像填充
VTK学习笔记(三十六)VTK图像填充 1.官方示例 2.其他例子 总结 1.官方示例 来自官方示例代码,自己只是添加了理解. 代码: #include <vtkCamera.h> #in ...
- 深度学习入门(五十六)循环神经网络——循环神经网络RNN
深度学习入门(五十六)循环神经网络--循环神经网络RNN 前言 循环神经网络--循环神经网络RNN 课件 潜变量自回归模型 循环神经网络 使用循环神经网络的语言模型 困惑度(perplexity) 梯 ...
- OpenCV学习笔记(五十六)——InputArray和OutputArray的那些事core OpenCV学习笔记(五十七)——在同一窗口显示多幅图片 OpenCV学习笔记(五十八)——读《Mast
OpenCV学习笔记(五十六)--InputArray和OutputArray的那些事core 看过OpenCV源代码的朋友,肯定都知道很多函数的接口都是InputArray或者OutputArray ...
- 深度学习之图像分类(十六)-- EfficientNetV2 网络结构
深度学习之图像分类(十六)EfficientNetV2 网络结构 目录 深度学习之图像分类(十六)EfficientNetV2 网络结构 1. 前言 2. 从 EfficientNetV1 到 Eff ...
最新文章
- java_spring_依赖注入(构造器)
- PL/SQL复合数据类型
- 二进制码转十进制java,Java将二进制转换为十进制
- cacti添加apache监控模板
- oracle索引大小暴增_Oracle创建索引前估算索引大小(dbms_space.create_index_cost)
- LA 6047Perfect Matching(回文串哈希)
- Jupyter Notebook使用
- 普通学校,非科班,从电脑小白到大厂offer的自学之路
- 机器学习与算法(6)--学习矢量化
- EXCEL工作表保护密码破解
- Trend Micro 趋势科技
- 利用pandas将Excel分组比较获取差集并
- 笔记(待续)-动力学逆问题相关基础知识
- 智能变电站无线监测系统
- PowerBuilder命令行编译详解[1]
- 5款好用的电脑软件!
- 自己动手写工具:百度图片批量下载器
- NVIDIA官方中文版GPU编程指南v2.20(转载自GZeasy)
- 润乾报表通过JS自带函数来实现自动计算中的四舍五入
- 赵小楼《天道》《遥远的救世主》深度解析(95)人、性、佛性、智慧的有迹可循
热门文章
- Windbg调试内核驱动方法
- 基于Windows Socket 的网络通信中的心跳机制原理
- Linux 权能综述
- 通过google app engine 在google cloud 部署支持quic的Java web 应用(多种方式)
- 腾讯TencentOS 十年云原生的迭代演进之路
- 阿里巴巴:全链路压测体系建设方案的思考与实践
- Apache Kafka 不需要管理员:删除 Apache ZooKeeper 的依赖
- 2019 年 8 月编程语言排行榜,Java涨幅不行!
- Spring Cloud Gateway 整合阿里 Sentinel网关限流实战
- Go基础编程:格式化输出、类型转换、类型别名