之前一直使用docker自带的命令进行迁移,操作繁琐不说还容易错,后来发现1panel工具自带的备份以及恢复功能,使用起来非常适合小白操作,容错率也高,用过一次就回不去了。真后悔没有买1panel永久版本,当然仅限于通过1panel安装的应用。
下面我分别使用docker命令和1panel工具进行迁移,没有对比就没有伤害,我是小白,我爱工具。
一、使用docker命令进行迁移
docker命令进行迁移,以之前做过的vocechat举例,它的容器id是079a12c1ff6a
下面进行服务器A上导出镜像和数据操作:
1、停止容器:
docker stop 079a12c1ff6a
2、导出镜像:
docker commit 079a12c1ff6a vocechat_image
docker save -o vocechat_image.tar vocechat_image
3、备份容器内部数据
docker cp 079a12c1ff6a:/home/vocechat-server/data ./data_backup
tar -cvzf data_backup.tar.gz ./data_backup
服务器B上导入镜像和数据操作
1、导入镜像,上传文件过程省略
docker load -i vocechat_image.tar
2、检查是否已经导入)
docker images//查看到容器的id为0b71c6507d05
3、恢复数据
mkdir -p /data/vocechat
tar -xvzf data_backup.tar.gz -C /data/vocechat
ls -al /data/vocechat //确认数据是否恢复到指定目录
mv /data/vocechat/data_backup/* /data/vocechat
4、使用原来的镜像启动
如果容器原来使用的是内部存储,现在推荐改为绑定宿主机路径,以便未来可以更轻松地管理数据。 启动容器时将恢复的数据目录挂载到容器内部路径:
docker run -d \
--name vocechat \
-v /data/vocechat/data:/home/vocechat-server/data \
-p 23000:3000 \
vocechat_image
二、使用1panel工具进行备份和恢复
首先明确要迁移的容器(应用)比如我这次要迁移memos这个应用,这是我日常使用非常频繁的一个便签式小工具,也可以当作小型笔记使用。
我们需要关注正在运行的memos的两个主要信息,一个是版本0.22.5,另外一个是服务端口15230。为了避免迁移失败最好保障两个一致,后续升级或者更改端口号都可以在新的服务器上进行。
其次我们需要点击右上角的备份按钮,并进入备份页面,点击备份文件(可以设置密码,后续恢复时也需要输入密码),备份完成后再进入该页面进行下载到本地电脑。
在新的服务器上使用1panel安装相同版本以及相同服务端口号的memos应用
数据迁移并验证
将下载的备份文件拖到该窗口区域,并上传。同时选中上传的内容并点击恢复,如果之前备份时有密码的话,会弹出一个框进行密码输入,没有的话进行跳过。
在浏览器上输入服务器ip+端口,打开memos应用页面进行数据校对,如果没啥问题的话将域名指向到新服务器即可。
三、总结:
从两种迁移过程的比较里,我们可以看到使用工具进行迁移是轻松简单,愉快的。不用担心过程中操作出错,非常感谢1panel的团队开发了这么好的工具,让我在使用服务器的旅程中感受到了快乐。