Docker 应用的本地备份和迁移 - docker 备份小白教程一(1/3)

Docker 应用的本地备份和迁移 - docker 备份小白教程一(1/3)

很多朋友最初接触 docker 时,都喜欢用面板来对 docker 进行各种操作,这样确实在最开始的时候会带来一些便利。其实如果学会了手搓,就会发现手搓在有些方面会更简单更实用,同时有问题时更容易查找问题所在。

这里仅提供一些简单的思路,请勿完全生搬硬套,不同的 docker 可能部署的方式不同,备份的方法也有差异。

在本地备份 docker 非常简单,分两种情况,有数据库应用还要多备份一下数据库

一、没有 MySQL (MariaDB) 数据库
以 Moments 极简朋友圈的 sqlite 版为例,打包压缩备份就一行语句
https://github.com/kingwrcy/moments

tar -C /root/docker/moments -czvf /root/backup/moments.tar.gz ./
# /root/docker/moments 是 docker 部署的目录,确定映射的数据也在这个目录下
# /root/backup 是备份的目录

二、有 MySQL (MariaDB) 数据库
以 Ghost 博客的 MySQL 版为例,先打包压缩备份 docker 目录,和上面一样
https://github.com/TryGhost/Ghost

tar -C /root/docker/ghost -czvf /root/backup/ghost.tar.gz ./

再导出备份 MySQL 数据库

用 root 账户,不需要输入密码

mysqldump -u root ghost > /root/backup/ghost.sql
# -u root 是以 root 登陆,在 root 下运行通常不需要密码
# ghost 是数据库名
# /root/backup/ghost.sql 备份文件放在 /root/backup 下

用其他账户,需要输入密码

mysqldump -u sqluser -p ghost > /root/backup/ghost.sql
# -u sqluser 以 sqluser 登陆
# -p 需要提示输入密码
# ghost 是数据库名
# /root/backup/ghost.sql 备份文件放在 /root/backup 下

迁移 docker 应用

Moments 极简朋友圈
把备份的文件 moments.tar.gz 复制到新的位置 /newroot/docker/moments
到目录下解压还原文件,就这么简单

# 还原文件
tar -xzvf moments.tar.gz

Ghost 博客
把备份的文件 ghost.tar.gz 和 ghost.sql 复制到新的位置 /newroot/docker/ghost
到目录下解压还原文件和数据库

# 还原文件
tar -xzvf ghost.tar.gz

# 用 root 账户还原数据库,请确认 ghost 数据库已创立
mysql -u root ghost < ghost.sql

# 用其他账户,需要输入密码,请确认 ghost 数据库已创立
mysql -u sqluser -p ghost < ghost.sql