logo NodeSeekbeta

【手搓】Docker 应用的本地备份和迁移 - docker 备份小白教程一

小白教程,大佬请绕行。
本人也是自学,如果发现其中有什么错误,请大家指正

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

此教程分三节,看时间情况更新

【手搓】Docker 应用的本地备份和迁移 - docker 备份小白教程一(此贴)
【手搓】Docker 应用 cron job 定时自动本地备份 - docker 备份小白教程二
https://www.nodeseek.com/post-295327-1
【手搓】Docker 应用 rsync 异地备份 - docker 备份小白教程三(完)
https://www.nodeseek.com/post-296648-1

这里仅提供一些简单的思路,请勿生搬硬套,不同的 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 数据库(这里的数据库是装在主机上的,不是装在 docker 里的,备份 docker 里的数据库有些不同)

用 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 

最后把 docker 运行起来就好了

小提示:如果 MySQL 数据库是建在 docker 里,要用下面命令备份

docker exec MYSQL_CONTAINER_NAME /usr/bin/mysqldump -u root --password=PASSWORD DATABASE_NAME > backup.sql
123
  • 支持原创,收下鸡腿🍗

  • 接下来你该学习全自动备份到备用源站上了
    加油

  • 如果你是小白在学,就不要写所谓的“教程”来坑别人萌新好吗?你自己都搞不明白还来误导别人?

  • 感谢分享

  • 每天进步一点点,学废了。

  • 点赞佬的分享!Docker 应用的本地备份和迁移

  • @0fb6bya #3
    他这个除了简单了点,但是也没啥错误吧!!!

  • 最后再来一句,仅提供思路,禁止生搬硬套就更好了
    因为有些情况并不适用,有的小白会直接拿来就用!
    然后小白搞错了就来骂你了
    xhj007

123

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有71813位seeker

🎉欢迎新用户🎉