zoukankan      html  css  js  c++  java
  • 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,进入系统。能够看到,直接打开了迁移之前的数据,完完整整。

  • 相关阅读:
    TinyMail研究—Camellite的插件系统
    Dual Tone Multifrequency
    Linux PPP 数据收发流程
    这个五一怎么过?
    Linux下的磁盘加密方法
    udev的实现原理
    c语言中程序的循环控制,for语句。
    创建一个函数,将和有n个元素的数组中的key相等的所有元素的下标存储在另一数组中,并返回和key元素相同的元素的个数。
    c语言中数组元素的哨兵查找法
    c语言中数组,一般数组
  • 原文地址:https://www.cnblogs.com/testertry/p/11934418.html
Copyright © 2011-2022 走看看