本文的WordPress博客是Docker Compose搭建的
所以对其进行及时备份和迁移,尤其是整站备份,而不是数据库等备份
目前市面上的备份插件大多数需要收费且不太符合整站备份需求
所以本文尝试对WordPress的Docker备份和迁移
首先查看Docker容器ID
docker ps -a
查看WordPress相关容器的ID(其中有wordpress和mariadb)
根据容器ID生成容器快照
这一步很重要,因为快照不仅仅是基础的镜像,而是包含了截止到目前为止容器内的配置和代码,库和一些文件等(不包括数据卷)
也就是我们要完全还原且正常运行,就需要备份容器快照,而不是基础镜像和最初的容器
使用下面命令生成容器快照
docker commit container-id image-name
实际演示
保存为压缩文件
按照下面命令
docker save image-name > image-name.tar
实际演示
可以看到生成了wordpressimageback.tar文件
第二个mariadb容器采用相同步骤备份tar文件(假定设置压缩镜像名为
mariadbimageback)
然后备份数据卷
本文db_data和wordpress文件夹为数据卷文件夹
这里直接备份dsx2016文件夹
tar -zcvf /home/dsx2016/docker/wordpress/databack.tar.gz /home/dsx2016/docker/wordpress/dsx2016
上述命令会把dsx2016文件夹压缩为databack.tar.gz文件放在wordpress文件夹下
以上完成了
-
wordpress容器快照的文件压缩备份
-
mariadb容器快照的文件压缩备份
-
数据卷的文件压缩备份
在另一个服务器上,确保Docker版本和原服务器一致或者兼容
先解压数据卷
确保在指定文件夹下有db_data,wordpress和docker-compose.yml文件
然后上传容器快照压缩文件,用下面命令进行容器镜像还原
cat image-name.tar | docker load
还原后,修改docker-compose.yml的镜像
然后运行
docker-compose up -d
可以完整还原运行Docker和对应的数据(整站备份WordPress)
注意,如果迁移后使用localhost或者127.0.0.1等访问WordPress
无法访问或者提示Ngixn页面等,这是WordPress本身的域名指定问题
使用frp或者本地电脑更改host映射或者nginx代理,使用迁移前的域名访问wordpress即可
如果会一些技术,可以直接修改wordpress的数据库,修改域名访问地址为localhost也行
END.