博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么是Docker Volume?
阅读量:5883 次
发布时间:2019-06-19

本文共 1691 字,大约阅读时间需要 5 分钟。

摘要Docker Volume,通常翻译为数据卷,用于保存持久化数据。当我们将数据库例如MySQL运行在Docker容器中时,一般将数据通过Docker Volume保存在主机上,这样即使删除MySQL容器,数据依然保存在主机上,有效保证了数据的安全性。这篇博客将通过简单的实践帮助大家理解什么是Docker Volume

什么是Docker Volume?
本文所有命令都是在的在线Docker实例上执行,Docker版本为17.05.0-ce

1. 指定Docker Volume

使用命令,可以运行一个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容器的详细信息:

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 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

专注于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java实时BUG监控。 自从2016年双十一正式上线,Fundebug累计处理了7亿+错误事件,得到了Google、360、金山软件、百姓网等众多知名用户的认可。欢迎免费试用!

什么是Docker Volume?

版权声明

转载时请注明作者以及本文地址:

转载于:https://blog.51cto.com/13957060/2318653

你可能感兴趣的文章
jsfl 添加代码
查看>>
写在前面
查看>>
数据库设计时间字段
查看>>
PHP分页代码中的SQL语句可以换个写法
查看>>
加载样式js
查看>>
数据库之数据排序
查看>>
struts2将数据通过Json格式显示于EasyUI-datagrid数据表格
查看>>
牛客21天刷题_day#3
查看>>
Appium-We wanted {"required":["value"]} and you sent ["text","sessionId","id","value"]
查看>>
Classification Truth Table
查看>>
JVM学习:对象的创建和内存分配
查看>>
JavaScript基础精讲
查看>>
C++ 静态变量 全局变量 const
查看>>
vs 高级保存选项的设置
查看>>
Java读取文本指定的某一行内容的方法
查看>>
软件工程敏捷开发04
查看>>
Practise Site Home Sample Page Codes de carte cadeau Amazon | Codes Promo Amazon
查看>>
linux c下输入密码不回显
查看>>
浏览器全屏与退出
查看>>
js判断浏览器类型
查看>>