什么是Docker Volume?
摘要:Docker Volume,通常翻译为数据卷,用于保存持久化数据。当我们将数据库例如MySQL运行在Docker容器中时,一般将数据通过Docker Volume保存在主机上,这样即使删除MySQL容器,数据依然保存在主机上,有效保证了数据的安全性。这篇博客将通过简单的实践帮助大家理解什么是Docker Volume。
[![]
本文所有命令都是在play-with-docker的在线Docker实例上执行,Docker版本为17.05.0-ce。
1. 指定Docker Volume
使用docker run命令,可以运行一个Docker容器
docker run -itd --volume /tmp/data1:/tmp/data2 --name test ubuntu bash
基于ubuntu镜像创建了一个Docker容器。
容器的名称为test,由--name选项指定。
Docker Volume由--volume选项指定,主机的/tmp/data1目录与容器中的/tmp/data2目录一一对应。
2. 查看Docker Volume
使用docker inspect命令,可以查看Docker容器的详细信息:
docker inspect --format='{{json .Mounts}}' test | python -m json.tool[ { "Destination": "/tmp/data2", "Mode": "", "Propagation": "", "RW": true, "Source": "/tmp/data1", "Type": "bind" }]
使用--format选项,可以选择性查看需要的容器信息。.Mount为容器的Docker Volume信息。
python -m json.tool可以将输出的json字符串格式化显示。
Source表示主机上的目录,即/tmp/data1。
Destination为容器中的目录,即/tmp/data2。
3. 本机文件可以同步到容器
在本机/tmp/data1目录中新建hello.txt文件
touch /tmp/data1/hello.txtls /tmp/data1/hello.txt
hello.txt文件在容器/tmp/data2/目录中可见
使用docker exec命令,可以在容器中执行命令。
docker exec test ls /tmp/data2/hello.txt
可知,在本机目录/tmp/data1/的修改,可以同步到容器目录/tmp/data2/中。
4. 容器文件可以同步到主机
在容器/tmp/data2目录中新建world.txt文件
docker exec test touch /tmp/data2/world.txtdocker exec test ls /tmp/data2/hello.txtworld.txt
world.txt文件在主机/tmp/data1/目录中可见
ls /tmp/data1/hello.txt world.txt
可知,在容器目录/tmp/data2/的修改,可以同步到主机目录/tmp/data1/中。
5. 结论
Docker Volume本质上是容器与主机之间共享的目录或者文件,这样Docker Volume中的数据可以在主机和容器中实时同步。使用Virtualbox创建虚拟机时,也可以配置共享目录,这与Docker Volume非常相似。
欢迎加入我们Fundebug的Docker技术交流群: 305097057。
版权声明:
转载时请注明作者 Fundebug以及本文地址:**
https://blog.fundebug.com/2017/06/07/what-is-docker-volume/**

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【译闻】Jenkins与持续交付的若干问题
关于译者GhostcloudGhostcloud(中文名:精灵云)是成都精灵云科技有限公司旗下的基于Docker的PaaS/CaaS平台品牌。公司成立于2015年,核心团队由来自EMC、Veritas、华为、IBM、Microsoft的核心技术主管和架构师组成。精灵云作为国内首批从事容器虚拟化研发的企业,为企业级行业客户提供针对互联网化、私有云管理平台、大数据业务基础架构的平台服务,在国内Docker社区贡献排名前三。主创团队曾参与Beego开源项目研发,并主导发布《Docker容器实战:原理、架构与应用》一书。Ghostcloud因容器技术而生,致力于为多个领域的“互联网+”转型企业提供服务,是一流的企业级容器云服务专家。 今天我们和大家详细聊一聊一直非常受欢迎的开源工具——Jenkins。 We Like Jenkins! 众所周知,Jenkins在软件开发流程中非常有用,是一款很棒的工具,但Jenkins和其他CI服务器一样,在软件交付过程中也会或多或少出现一些问题。软件交付团队往往在部署Jenkins以及这类工具的时候会犯错,使得开发效率变低,削弱了团队的敏捷开发能力,同时也失...
- 下一篇
你为什么要使用CDN?
如果你在经营一家网站,那你应该知道几点因素是你制胜的关键: 内容有吸引力 访问速度快 支持频繁的用户互动 可以在各处浏览无障碍 另外,你的网站必须能在复杂的网络环境下运行,考虑到全球的用户访问体验。你的网站也会随着使用越来越多的对象(如图片、帧、CSS及APIs)和形形色色的动作(分享、跟踪)而系统逐渐庞大。所以,系统变慢带来用户的流失。 Google及其它网站的研究表明,一个网站每慢一秒钟,就会丢失许多访客,甚至这些访客永远不会再次光顾这些网站。可以想像,如果网站是你的盈利渠道或是品牌窗口,那么网站速度慢将是一个致命的打击。 这就是你使用CDN的第一个也是最重要的原因:为了加速网站的访问 除此之外,CDN还有一些作用: 1. 为了实现跨运营商、跨地域的全网覆盖 互联不互通、区域ISP地域局限、出口带宽受限制等种种因素都造成了网站的区域性无法访
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS6,CentOS7官方镜像安装Oracle11G
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7安装Docker,走上虚拟化容器引擎之路