一条命令备份容器中的数据卷
一行命令备份容器中的数据卷
前言
之前在创建miniflux容器时使用了官方的docker-compose.yml配置:
1 | services: |
后来注意到官方配置用到了命名数据卷miniflux-db
,这样做的好处是可以在多个容器之间共享数据库目录,而实际上并共享读取数据库目录的需求,并且这样做的缺点是如果系统出问题时很可能来不及备份docker的数据卷,或者干脆就忘了。而数据库中有长期订阅积攒下来的大量rss链接和文章,这是一份宝贵的数据,完全可以拿来做知识库什么的,如果丢失了就得不偿失了。
然后在网上找了一下资料,翻了几页,方法千篇一律都是创建临时容器、挂载目录、tar压缩打包,然后再用容器解包。后来自己看了下docker命令,发现一条命令就能解决:
1 | docker cp miniflux-db-1:/var/lib/postgresql/data $(pwd)/miniflux-db/ |
在docker-compose.yml所在目录下创建一个miniflux-db
作为docker ps
命令的复制目的目录,miniflux-db-1
是miniflux数据库的容器名,执行后会复制到当前目录下的miniflux-db
目录。
这时修改docker-compose.yml中的条目:
1 | db: |
然后可以删除配置中数据卷的定义(用不上了):
1 | volumes: |
更多内容请关注我的博客
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 先生请出山!
评论