本文主要是介绍 wiz 为知笔记服务器 docker 从旧服务器迁移到新服务器的步骤以及问题排查。

旧服务器升级 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 行的挂载目录、绑定的端口请根据你自己的部署参数修改

迁移旧服务器挂载的 wiz 数据目录

我的目录是 /home/ubuntu/wizdata ,将 wizdata 目录想方法传到 新服务器,我是先用 7z 压缩目录然后通过 ftp 传到新服务器后再解压。

7z 相关命令

# 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

新服务器部署 wiz docker

# 部署为知笔记服务器 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

wiz 为知笔记服务器 docker 跨服务器迁移爬坑指北的更多相关文章

  1. Docker跨服务器通信Overlay解决方案(下) Consul集群

    承接上文 本文基于上篇文章,详细的场景说明与分析在前篇随笔中业已记录,有兴趣可以移步 Docker跨服务器通信Overlay解决方案(上) Consul单实例 本文主旨 本文为Docker使用Cons ...

  2. Docker跨服务器通信Overlay解决方案(上) Consul单实例

    场景 公司微服务快上线了,微服务都是用Docker容器进行部署的,在同一台主机下,把服务都部署上,注册到Nacos的IP与PORT都是内网的IP与Dockerfile中定义的端口号,看起来好像也没什么 ...

  3. 虚拟化学习笔记-KVM虚拟化跨机迁移原理

    参考:https://zhuanlan.zhihu.com/p/27055555 在线迁移过程划分为三个阶段:准备阶段.迁移阶段和切换阶段.迁移环境为虚拟化底层KVM+Qemu.虚拟化管理Libvir ...

  4. sqlserver 添加服务器链接 跨服务器访问数据库

    转载地址1:https://www.cnblogs.com/wanshutao/p/4137994.html //创建服务器链接 转载地址2:https://www.cnblogs.com/xulel ...

  5. docker运行jexus+mono爬坑记

    新的.net core都已经支持docker.手头有一些原来开发的asp.net旧项目,用的asp.net mvc开发的,跑在.net formwork 4.6上. 在docker的公共仓库searc ...

  6. Jersey实现跨服务器上传图片:UniformInterfaceException:403 Forbidden

    jersey.api.client.UniformInterfaceException :returned a response status of 403 Forbidden 图片服务器:端口808 ...

  7. 缓存一致性和跨服务器查询的数据异构解决方案canal

    当你的项目数据量上去了之后,通常会遇到两种情况,第一种情况应是最大可能的使用cache来对抗上层的高并发,第二种情况同样也是需要使用分库 分表对抗上层的高并发...逼逼逼起来容易,做起来并不那么乐观, ...

  8. 解决为知笔记docker镜像部署后登录连接mysql报错

    https://www.wiz.cn/zh-cn/docker 部署正常后登录一切正常,但开机重启后登录用户名时报错,是和非正常退出程序导致mysql sock锁,清除该锁文件后恢复正常. 1 C:\ ...

  9. ASP.NET、JAVA跨服务器远程上传文件(图片)的相关解决方案整合

    一.图片提交例: A端--提交图片 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string u ...

  10. php 跨域、跨子域,跨服务器读取session

    1.跨子域和跨服务器解决方式 Session主要分两部分:   一个是Session数据,该数据默认情况下是存放在服务器的tmp文件下的,是以文件形式存在    另一个是标志着Session数据的Se ...

随机推荐

  1. PetaLinux常用命令汇总

    创建petalinux工程 Create a new project from a reference BSP file. 用于从官方下载的BSP中抽取数据产生工程. petalinux-create ...

  2. QT学习:06 常用的全局变量与宏定义

    --- title: framework-cpp-qt-06-常用的全局变量与宏定义 EntryName: framework-cpp-qt-06-global date: 2020-04-10 11 ...

  3. Vue2 整理(二):核心篇(组件化开发)

    前言 上一篇连接:vue2 整理:基础篇. 组件化开发 组件概念 组件,对于学Java的人来说的话,这个词所要表达的意思再熟悉不过了. 所谓组件就是:面向对象中的抽象.封装思想:而所谓的组件化就是:把 ...

  4. WEB入门 - 文件上传

    WEB入门 - 文件上传 参考文章 https://fushuling.com/index.php/2023/08/20/ctfshow刷题记录持续更新中/ https://www.cnblogs.c ...

  5. 如何计算QPS、PV和需要部署机器数量?

    基本概念 网站访问量的常用衡量标准:独立访客(UV) 和 综合浏览量(PV),一般以日为单位来计算. 独立访客(UV):指一定时间范围内相同访客多次访问网站,只计算为1个独立访客. 综合浏览量(PV) ...

  6. 基于JQ使用原生js构造一个自动回复随机消息的机器人

    某些业务会使用到页面里存在一个机器人,类似于假客服一样,可以回复游客的问题. 那么如何自己写一个自动回复消息的机器人呢? 源码献上 /** * 基于jq的自动对话机器人 * @param {Objec ...

  7. 存储器与CPU的连接

    存储器与CPU连接分主要看前五步 1.首先根据给出的地址范围写出二进制码 2.确定芯片的类型和数量 3.确定地址线 4.确定片选信号 要注意MREQ是低电平有效,要连到138译码器的低电平

  8. Python爬虫(5-10)-编解码、ajax的get请求、ajax的post请求、URLError/HTTPError、微博的cookie登录、Handler处理器

    五.编解码(Unicode编码) (1)GET请求 所提方法都在urllib.parse.路径下 get请求的quote()方法(适用于只提交一两个参数值) url='http://www.baidu ...

  9. [春秋云镜] Initial

    [春秋云镜] Initial **整套网络环境拓扑:** ​​ 一.打进内网 开局一个ip:39.101.184.25,fscan扫一下 ​​ 存在thinkphp5.0.23的漏洞,可以rce,我们 ...

  10. Python+requests编写接口用例

    1.python编写接口用例需要依赖requests模块,我们先确认本地是否安装了requests模块,没有安装的先进行安装. pycharm工具查看已安装的模块:File->Setting-& ...