Docker持久化存储与数据共享
一.docker持久化数据的方案
基于本地文件系统的volume:可以在执行docker create或docker run时,通过-v参数将主机的目录作为容器的数据卷。这部分功能便是基于本地文件系统的volume管理。
基于plugin的volume:支持第三方的存储方案,比如nas,aws
1.volume的类型
受管理的data volume,由docker后台自动创建
绑定挂载的volume,具体挂载位置可以由用户指定
二.数据持久化:data volume
1.操作流程
注意:mysql的dockerfile中由volume ["/var/lib/mysql"]指定了持久化的路径,此路径是要被持久化的路径,默认volume的名称为local
执行 sudo docker run -d -v mysql:/var/lib/mysql --name mysql1 -e mysql_allow_empty_password=true mysql启用一个mysql的image容器,其中-v后跟的mysql表示volume别名,冒号后面的路径为volume本地存储的地址
查看 sudo docker volume ls查看docker的volume,会发现自动生成了一个volume
通过 sudo docker volume inspect volume的name值查看对应volume的详情信息
如果希望删除volume,则可以使用sudo docker volume rm volumename
在这里向大家推荐一个资料分享群:916683284,里面有大数据离线处理、数据实时处理、hadoop 、spark、推荐系统算法等内容的资料分享,如果有兴趣的朋友可以加入领取。
2.恢复volume数据
上述操作后会将数据存储到/var/lib/mysql中,我们可以对container中的mysql数据进行增删改查操作
通过 sudo docker rm mysql1移除container
此时查看/var/lib/mysql路径仍然存储volume
我们可以使用 sudo docker run -d -v mysql:/var/lib/mysql --name mysql1 -e mysql_allow_empty_password=true mysql再次开启一个container,此时的volume会延用之前的数据实现数据的恢复
三.数据持久化:bind mounting
1.与data volume的区别
data volume需要在dockerfile中定义要创建的volume
bind mounting是在运行时指定本地目录与容器中目录的一一对应关系即可docker run -v /home/aaa:/root/aaa
推荐阅读
-
React通过redux-persist持久化数据存储的方法示例
-
docker-compose一键部署redis一主二从三哨兵模式(含密码,数据持久化)
-
详解Docker的持久化存储和数据共享
-
JAVAEE——宜立方商城06:Redis安装、数据类型和持久化方案、Redis集群分析与搭建、实现缓存和同步
-
重启redis服务数据丢失的问题(rdb与aof持久化策略)
-
详解使用Docker部署MySQL(数据持久化)
-
docker下的 redis 之持久化存储详解
-
从零开始入门 K8s | 应用存储和持久化数据卷:存储快照与拓扑调度 crack工作阿里巴巴
-
vue项目持久化存储数据的实现代码
-
docker 数据持久化