docker部署如何数据持久化

docker部署方式,如何挂载数据,实现持久化。容器重启后,就会出现数据丢失

这种方法想了下有问题,直接在原帖子上更新。这里有个方案:
docker run -d --name ob -v /your/path:/root/ob oceanbase/oceanbase-ce
启动的命令大致是这样。
oceanbase-ce容器有两个主要目录:/root/ob 这是OB的启动目录,里面有日志、数据文件和clog文件;/root/boot 下面存放配置文件,容器启动时会在这里找配置文件,如果没有,就会认为还没有部署过。
第一次启动不能挂载/root/boot。
另外,oceanbase-ce容器还支持将数据文件和clog配置为不同的目录,如果这样的话,需要额外通过-v参数,设置其它的目录来映射宿主机到docker。
后面容器重启数据都不会丢失。
但是如果要启动新的镜像,使用旧的数据就比较麻烦,因为要部署的目录中已经有数据了。
第二次启动,需要找一个空的目录挂载,先把容器起来,然后进入容器将observer停下来,目录清空,把原来的数据复制过来。

这种方法比较麻烦,可以考虑下修改dockerfile, 代码也是开源的

后面我们会考虑做一个比较好用的能够满足这种需求的镜像。


老师,我这边之前配置过您说的/root/ob,报错如图,这样怎么处理?因为挂载后有值了,再次启动就会出现错误

挂载数据卷

是的,暂时还没确定要挂载那个文件夹,您知道的话,麻烦告知,谢谢

现在的处理方法确实比较麻烦,有资源可以考虑下定制dockerfile

好的,感谢

自定义dockerFile时,也是先指定一个空的OB_HOME_PATH,脚本启动observer,然后把挂载出来的数据进行还原吗?