时间:2021-05-02
阅读本文前,希望你已经对volumes有了初步的了解,具体可以参考这篇文章:
docker数据存储之volumes详解
默认容器的数据的读写发生在容器的存储层,当容器被删除时其上的数据将会丢失。所以我们应该尽量保证容器存储层不发生写操作,为了实现数据的持久化存储我们需要选择一种方案来保存数据,当前有以下几种方式:
下图展示了这三种技术:
bind mounts
bind mounts模式和volumes非常相似,不同点在于bind mounts模式是将宿主机上的任意文件或文件夹挂载到容器,而volumes本质上是将docker服务管理的一块区域(默认是/var/lib/docker/volumes下的文件夹)挂载到容器。
bind mounts的使用和volumes类似,也是通过-v或--mount参数将宿主机文件挂载容器中。下面是一个例子:
使用--mount参数时,需要指定type=bind:
? 1 2 3 4 $ docker run -d \ --name=nginxtest \ --mount type=bind,source=/usr/local/web,destination=/usr/share/nginx/html \ nginx:latest上面的例子将宿主机上的/usr/local/web文件夹挂载到容器中的/usr/share/nginx/html文件夹。
或者使用-v参数:
? 1 2 3 4 $ docker run -d \ --name=nginxtest \ -v /usr/local/web:/usr/share/nginx/html \ nginx:latest挂载成功后,容器从/usr/share/nginx/html目录下读取或写入数据,实际上都是从宿主机的 /usr/local/web目录中读取或写入数据。因此volumes或bind mounts也可以看作是容器和宿主机共享文件的一种方式。
如果你使用bind mounts挂载宿主机目录到一个容器中的非空目录,那么此容器中的非空目录中的文件会被隐藏,容器访问这个目录时能够访问到的文件均来自于宿主机目录。这也是bind mounts模式和volumes模式最大的行为上的不同。
bind mounts使用场景
请参考这篇文章:docker数据存储总结
参考文章
https://docs.docker.com/storage/bind-mounts/
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接
原文链接:https://www.jianshu.com/p/1c4c8374f2dc
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
阅读本文前,希望你已经对volumes,bindmounts和tmpfsmounts有了初步的了解,具体可以参考以下文章:docker数据存储之volumesd
上一篇文章我们介绍了mysql数据存储过程参数实例详解,今天我们看看MySQL操作之JSON数据类型的相关内容。概述mysql自5.7.8版本开始,就支持了js
Android本地存储SharedPreferences详解存储位置SharedPreferences数据保存在:/data/data//shared_pref
阅读本文前,希望你已经对volumes和bindmounts有了初步的了解,具体可以参考以下文章:docker数据持久化之volumesdocker数据持久化之
jenkins构建Docker镜像实例详解前言:jenkins有Docker镜像,而之前我们说过使用jenkins打包Docker镜像,那么可否用jenkins