docker中volume是什么意思

docker中,volume的意思是“数据卷”,可以绕过默认的联合文件系统,以正常的文件或者目录的形式存在于宿主机上,进而实现保存持久化数据以及共享容器间的数据。

docker中volume是什么意思

本教程操作环境:linux7.3系统、docker-1.13.1版、Dell G3电脑。

docker中volume是什么意思

Docker Volume,通常翻译为数据卷,用于保存持久化数据。当我们将数据库例如MySQL运行在Docker容器中时,一般将数据通过Docker Volume保存在主机上,这样即使删除MySQL容器,数据依然保存在主机上,有效保证了数据的安全性。

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非常相似。

推荐学习:《docker视频教程》

以上就是docker中volume是什么意思的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3159576.html

(0)
上一篇 2025年3月30日 10:36:22
下一篇 2025年3月30日 10:36:31

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论