docker部署mongodb挂载数据以及mongodb迁移数据

mongodb备份数据

由于之前是在本地启动的mongodb服务,现在需要用docker容器部署,数据需要把之前的数据导出来

使用mongo自带命令来迁移数据,思路是先导出集合数据再导入到数据库中

1、导出命令:mongoexport

语法:
mongoexport -d dbname -c collectionname -o filepath --type json/csv

mongoexport -d ycblog -u yc -p ycblog -c clickNum -o /yc/mongodb/clickNumData --jsonArray
mongoexport -d ycblog -u yc -p ycblog -c experience -o /yc/mongodb/experienceData --jsonArray
-d:数据库名
-c:集合名称
-o:导出数据文件的路径
--type:导出数据类型,默认json

docker部署mongodb挂载数据以及mongodb迁移数据_第1张图片

2、导入命令:mongoimport

语法:mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv

mongoimport -d ycblog -u yc -p ycblog -c clickNum --file /importData/clickNumData --jsonArray --type json
mongoimport -d ycblog -u yc -p ycblog -c experience --file /importData/experienceData --jsonArray --type json
-d:数据库名
-c:集合名称
--file : 选择导入的文件
--type : 文件类型,默认json

docker部署mongodb挂载数据以及mongodb迁移数据_第2张图片

注意:导入数据时需要将导出的文件拷贝到容器中,在容器中执行导入命令

docker拷贝本地文件到容器命令:
docker cp 本地路径 容器长ID:容器路径

查找容器长ID
docker inspect -f '{{.ID}}' 容器名

docker cp /yc/mongodb/mongodbDocker/exportData d527b8abe6587b267e4ceea3a39e4810bf70c0c509272e7234876e0296d369ef:/importData

docker部署mongodb

1、拉取镜像

拉取最新版
docker pull mongo

拉取指定版本
docker pull mongo:4.0.20

2、启动容器

docker run -itd --name mongodb --restart=always --privileged -p 27017:27017 -v /yc/mongodb/mongodbDocker/data/db:/data/db -v /yc/mongodb/mongodbDocker/configdb:/data/configdb -v /yc/mongodb/mongodbDocker/log:/data/log mongo:4.0.20 --auth

# -v /yc/mongodb/mongodbDocker/data/db 挂载数据文件,注意挂载的地址需要对应配置文件中的地址
# -v /yc/mongodb/mongodbDocker/configdb 挂载配置文件
# -v /yc/mongodb/mongodbDocker/log 挂载日志文件,注意挂载的地址需要对应配置文件中的地址
# --restart=always  Docker服务重启容器也启动
# --privileged  拥有真正的root权限
# --auth 开启权限认证,需要账户密码才能登录,否则直接使用ip和端口就可以直接登录

mongod.conf配置文件如下:

systemLog:
    #MongoDB发送所有日志输出的目标指定为文件
    destination: file
    #mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
    path: "/yc/mongodb/mongodbDocker/log/mongod.log"
    #当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。
    logAppend: true
storage:
    #mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。
    dbPath: "/yc/mongodb/mongodbDocker/data/db"
    journal:
        #启用或禁用持久性日志以确保数据文件保持有效和可恢复。
        enabled: true
security:
    #开启授权认证 
    authorization: enabled
#linux环境下配置
processManagement:
    #启用在后台运行mongos或mongod进程的守护进程模式。
    fork: true
    #指定用于保存mongos或mongod进程的进程ID的文件位置,其中mongos或mongod将写入其PID
    pidFilePath: "/yc/mongodb/mongodbDocker/log/mongod.pid"
net:
    #服务实例绑定所有IP,有副作用,副本集初始化的时候,节点名字会自动设置为本地域名,而不是ip
    #bindIpAll: true
    #服务实例绑定的IP
    bindIp: 0.0.0.0
    #bindIp
    #绑定的端口
    port: 27017

如何设置权限请看这篇博客:https://www.ycblog.top/article?articleId=89&pageNum=1
博客转载于:https://www.ycblog.top/article?articleId=144&pageNum=1

你可能感兴趣的:(后端,mongodb,docker)