基于docker部署的discuz备份

1.discuz备份说明

本教程基于docker容器技术搭建的discuz平台进行备份。

备份需要保存:

  • 容器镜像

  • 数据库文件

容器镜像推荐保存在dockerhub上

数据库文件推荐放在不同的物理机上做多个备份

 

2.1 容器打包成镜像上传到dockerhub保存

 

docker images   #查看docker镜像
docker commit 镜像id 仓库名/镜像名:Tag
docker login #登录dockerhub
docker push REPOSITORY #将镜像上传到docker hub

 

 

 

上传之后在docker hub仓库能找到该镜像

 

 

 

2.2 导出数据库信息

docker ps #查看容器id
docker exec -it 容器id /bin/bash #进入容器内部
mysqldump -u用户名 -p密码 root> root.sql #将root数据库导出到root.sql文件中,root数据库存储着discuz中的数据,数据库用户名root,密码root

将root.sql存放在安全的地方备份,最好根据日期来命名这个root.sql文件,日期跟第一步里面的镜像文件日期保持一致

 

2.3 在新的环境下恢复discuz

 

拉取镜像

docker pull nils100/discuz:11-21

 

 

 

以nils100/discuz:11-21这个镜像创建新的容器,并将数据库文件导入到容器的数据库中

docker run -d -p 80:80 -p 443:443 nils100/discuz:11-21  #运行镜像,会得到一个容器
docker ps #查看当前正在运行的容器
docker exec -it 容器id /bin/bash #进入容器内部
docker cp [宿主机中的root.sql] [容器id:路径] #将宿主机中的root.sql文件保存至容器中,root.sql文件是2.2步骤中获得的
登录mysql,然后执行下面命令
mysql>source [root.sql所在路径]; #root.sql文件导入到root数据库中(如果没有该数据库,先创建它)

 

 

 

posted @ 2021-11-21 21:04  9761滴  阅读(196)  评论(0编辑  收藏  举报