• Yapi docker 数据卷的迁移


    一、前提条件:

    之前聊到,在ubuntu虚拟机上面安装了Yapi和MongoDB容器,运行Yapi程序。现在要将其迁移到另一台服务器上,保留所有数据。

    参考了以下两位同学的博客,万分感谢:
    1. 卷的基本操作中讲到如何运行一个容器并且加载某个已经存在的卷 https://www.cnblogs.com/yjlch1016/p/9033078.html

    2. 博客 https://blog.csdn.net/s78365126/article/details/88065144 教你 如何打包卷和恢复卷

    第一步:在服务器2上安装Docker。在此不做多的描述了。

    第二步:在服务器1上,打包数据卷:

    $ docker run -i -t --volumes-from mongo-yapi -v $(pwd):/backup mongo tar cvf /backup/backupdata.tar /data/db

    参数解释:

    volumes -from mongo-yapi:表示要用mongo-yapi这个容器的数据卷。
    
    $(pwd):获取当前目录路径
    
    backup:执行备份指令
    
    tar /backup/backupdata.tar /data/db : 打包容器内需要保留的数据目录到backupdata.tar 文件。
    

    打包完成了,看到目标文件乖巧的躺在那里。(ls -a 命令)

     第三步:将tar文件传输到新服务器上。此处不演示。

    第四步:创建临时容器,用空目录映射到之前要保留的数据目录下。

    $ docker run -itd -v /data/db --name data1 mongo /bin/bash
    

     第五步:创建临时容器恢复数据卷到刚刚创建的新容器data1中。这个刷屏了。所以只留了部分截图。--rm  属性会在执行完后立即删除该容器

    $ docker run --rm --volumes-from data1 -v $(pwd):/backup mongo tar xvf /backup/backupdata.tar
    

     第六步:查看都有哪些数据卷存在,并且可用

    $ docker volume list
    

     查看卷的基本信息。这俩个卷,后创建的那个是我们要用到的。xxxxxxxxxxxxxxxx是容器ID,我就这么写了。

    $ docker volume inspect xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    

     第七步:运行一个mongo容器,使用已经被恢复的卷。xxxxxxxxxxxxxxxx是容器ID。

    $ docker run -d --name mongo-yapi -v xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:/data/db mongo
    

     第八步:加载Yapi镜像:

    $ docker pull registry.cn-hangzhou.aliyuncs.com/anoy/yapi
    

     第九步:初始化, 这个时候如果不出意外的话应该有一个报错:管理员账号初始化失败。这个不用管。因为数据库中原有管理员账号,所以报这个错是正常的。

    docker run -it --rm 
    --link mongo-yapi:mongo 
    --entrypoint npm 
    --workdir /api/vendors 
    registry.cn-hangzhou.aliyuncs.com/anoy/yapi 
    run install-server
    

     第十步:启动Yapi服务。

    docker run -d 
    --name yapi 
    --link mongo-yapi:mongo 
    --workdir /api/vendors 
    -p 3000:3000 
    registry.cn-hangzhou.aliyuncs.com/anoy/yapi 
    server/app.js
    

     第十一步:在浏览器中打开:http://192.168.23.133:3000,进入系统。能够看到,直接打开了迁移之前的数据,完完整整。

  • 相关阅读:
    POJ3613 Cow Relays 经过n条边的最短路
    UML笔记(六)
    UML主要内容及参考资料
    UML笔记(五)
    UML笔记(一)
    UML笔记(三)
    UML笔记(四)
    软件工程——第十一章 软件项目管理
    软件工程——第十章 软件工程管理
    UML笔记(二)
  • 原文地址:https://www.cnblogs.com/testertry/p/11934418.html
Copyright © 2020-2023  润新知