• docker备份mongodb数据,导入导出


    场景:服务器要升级,之前在linux部署的mongodb没有用docker,升级后,mongodb要用docker部署,并将原有的mongodb数据导入到docker部署的mongodb中。

    1.在linux安装的mongodb文件下导出mongodb数据

     ./bin/mongodump -h ip:port  -d 数据库名 -o  linux环境下指定的文件夹 //如有用户名,则加上 --username xxx --password xxx

    2.安装docker :docker run -p 27018(容器外部访问的端口):27017 -v $PWD/db:/data/db -d  --name mymongo mongo  --smallfiles

    --auth ,开启账户验证

    设置密码

    docker exec -it <docker_mongodb_name> mongo bash

    user test

    db.createUser( {

     user: "root",
     pwd: "root",

     roles: [ { role: "userAdminAnyDatabase", db: "test" } ]})

    也可以:-e MONGO_INITDB_ROOT_USERNAME=mongoadmin -e MONGO_INITDB_ROOT_PASSWORD=secret

     参考文档:https://docs.docker.com/samples/library/mongo/#mongo_initdb_root_username-mongo_initdb_root_password

    3.进入docker mongodb容器:docker exec -it mymongo /bin/sh

    在docker容器新建mongodb数据要导入的目录,mkdir -p /opt/mongodbBack/

    4.退出docker mongodb容器,进入真机linux

    docker cp linux备份mongodb的数据文件(不是文件夹)  mymongo(容器名称或id):/opt/mongodbBack/  

    docker exec -it mymongo bash

    执行: mongorestore -h localhost:27017 -d pac(数据库名字,可以随便写,存在不存在都可以) --dir /opt/mongoData/

    至此,已完成docker mongodb的数据导入linux的mongodb数据

    5.将docker mongodb的数据导出到真机中

    docker exec -it mymongo /bin/bash

    mongodump -h 127.0.0.1 --port 27017 -d test -o /test/mongodBack     //在容器内部,导出数据到容器内部的指定文件夹

    退出docker mongodb容器:docker cp <mongodb容器名>:/test/mongodBack/    /home/opt/mongodbData/(此为真机目录)

  • 相关阅读:
    caffe常用层: batchNorm层和scale层
    简述configure、pkg-config、pkg_config_path三者的关系
    python删除list中元素的三种方法
    Leetcode 872. Leaf-Similar Trees
    Leetcode 508. Most Frequent Subtree Sum
    Leetcode 572. Subtree of Another Tree
    Leetcode 894. All Possible Full Binary Trees
    Leetcode 814. Binary Tree Pruning
    Leetcode 557. Reverse Words in a String III
    python 多维list声明时的小问题
  • 原文地址:https://www.cnblogs.com/qiyc/p/10150433.html
Copyright © 2020-2023  润新知