本文主要是介绍 wiz 为知笔记服务器 docker 从旧服务器迁移到新服务器的步骤以及问题排查。
目的:保持和新服务器拉取的镜像版本一致。
官方只留了 wiz docker 镜像最新版,拉取不了旧版本镜像,所以先升级旧服务器上的 wiz docker。
docker stop wiz
docker rm wiz
docker pull wiznote/wizserver:latest
docker run --name wiz -it -d -v /home/ubuntu/wizdata:/wiz/storage -v /etc/localtime:/etc/localtime -p 9000:80 -p 9269:9269/udp wiznote/wizserver
注:第 4 行的挂载目录、绑定的端口请根据你自己的部署参数修改
我的目录是 /home/ubuntu/wizdata
,将 wizdata
目录想方法传到 新服务器,我是先用 7z 压缩目录然后通过 ftp 传到新服务器后再解压。
# Ubuntu/Debian 安装命令
sudo apt-get install p7zip-full
# 压缩整个目录
7z a wizdata.7z wizdata/*
# 测试压缩文件的完整性
7z t wizdata.7z
# 解压到指定目录
7z x wizdata.7z -o./wizdata
注:传到新服务器后一定要先测试压缩文件完整性,不然挂载后会出错
如果测试没有错误,会显示 Everything is Ok
解压 wizdata
后,最好将目录权限设置成和旧服务器一致。
# 全部子目录及文件权限改为 777
chmod 777 * -R
# 部署为知笔记服务器 Docker 镜像
docker run --name wiz -it -d -v /home/zoyo/wizdata:/wiz/storage -v /etc/localtime:/etc/localtime -p 3180:80 -p 39269:9269/udp wiznote/wizserver
注:挂载目录、绑定的端口请根据你自己的部署参数修改
官方指南:为知笔记服务器Docker镜像部署介绍
检查新旧服务器 wiz docker 镜像版本是否一致
检查迁移的 wizdata 目录是否数据损坏
检查新旧服务器挂载的 wizdata 目录权限是否一致
检查挂载的 wizdata 目录路径是否正确
我这里就犯过低级错误,解压后 wizdata 目录路径为 /home/zoyo/wizdata/wizdata
,而挂载的目录路径为 /home/zoyo/wizdata
查看容器日志排查问题
docker logs -f 7e455ab9c988
进入容器查看 mysql 日志排查问题
# 查看 wiz docker 镜像 ID
sudo docker ps
# 进入 wiz docker 终端
sudo docker exec -it 3bceba9f92df bash
# 查看 mysql 错误日志
cat /var/lib/mysql/mysql_error.log