最近docker出了问题,要重装,但重装可能会导致codimd的volume受到损失,故需要备份,其docker-compose文件如下:
1 | version: "3" |
需要注意的是,其中映射的文件目录/var/lib/postgresql/data和/home/hackmd/app/public/uploads分别对应的是named volume也就是database-data和upload-data。这两个volume比较特殊,被称为named volume在硬盘上是没有对应的文件目录的,也就很难通过拷贝目录的方式备份。
解决方法参考了这个:https://stackoverflow.com/questions/38298645/how-should-i-backup-restore-docker-named-volumes
这里我做了个实用小工具docker_named_volume_backup,项目地址为https://github.com/fjh1997/docker_named_volume_backup。
使用方法很简单:
首先列出你想备份的镜像:
1 | sudo docker volume ls |

可以看到我想备份的是codimd_database-data和codimd_upload-data
之后下载我的小工具。
1 | git clone https://github.com/fjh1997/docker_named_volume_backup.git |
备份:
1 | #sudo backup_docker_volume.sh <volumn_name> <tar_file> |
恢复:
1 | #sudo restore_docker_volume.sh <volumn_name> <tar_file> |
说些什么吧!