文档章节

docker安装mongodb并备份

o
 osc_w9s1w4o0
发布于 2019/03/29 16:39
字数 608
阅读 6
收藏 0

精选30+云产品,助力企业轻松上云!>>>

安装

官方镜像地址: https://hub.docker.com/_/mongo?tab=description

可以查看对应的dockerfile, 通过观察docker-entrypoint.sh可以看出,docker版的mongo移除了默认的/etc/mongo.conf, 修改了db数据存储路径为 /data/db.

 docker run  \
--name mongod \
-p 27017:27017  \
-v /data/opt/mongodb/data/configdb:/data/configdb/ \
-v /data/opt/mongodb/data/db/:/data/db/ \
-d mongo:4 --auth 

设置账号和密码

登陆镜像,设置admin

 docker exec -it mongod mongo admin
 
 >db.createUser({ user: 'admin', pwd: 'admin123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });

设置一个其他用户

 db.auth("admin", "admin123456")
 db.createUser({ user: 'yapi', pwd: 'yapi123456', roles: [ { role: "readWrite", db: "yapi" } ] });
 

远程登陆

我们从一个其他的服务器去登陆刚才创建的mongo。

先来获取刚才创建的mongo的host,可以通过docker inspect,也可以

 docker exec -it mongod cat /etc/hosts

先用docker创建另一个mongo_client并连接我们的mongo

 docker run -it --name mongo mongo:4 mongo -host 172.17.0.5 -u yapi -p yapi123456
 
 > db
test
> use yapi
switched to db yapi
> show collections
test
>  db.test.find();
{ "_id" : ObjectId("5c9dca2b4d225a0ca0fb29c9"), "name" : "ryan" }

备份

创建mongodb服务的时候已经导出了我们的数据文件,现在干掉docker,重新跑,看我们的数据是否丢失。

 docker kill mongod
 docker rm mongod
  docker run  \
--name mongod \
-p 27017:27017  \
-v /data/opt/mongodb/data/configdb:/data/configdb/ \
-v /data/opt/mongodb/data/db/:/data/db/ \
-d mongo:4 --auth 

去登陆查看数据,发现没有丢失

接下来就是备份我们的/data/opt/mongodb/data 目录即可。当然,这是全量备份,想要增量备份,参照官方文档进行备份。

全量备份/data/opt/mongodb/data

创建备份目录/data/opt/mongodb/backup/data

创建备份日志目录: /data/log/backup/mongodb

创建备份脚本backup-mongodb.sh

 source /etc/profile

LOG_DIR=/data/log/backup/mongodb
SOURCE_DIR=/data/opt/mongodb/data
BACKUP_DIR=/data/opt/mongodb/backup/data

REMOTE_IP=192.168.1.98
REMOTE_USER=root
REMOTE_DIR=/data/opt/backup/mongodb


function log()
{
  echo "[ `date '+%Y-%m-%d %H:%M:%S'` ] $1"
}


# 备份
function main(){
    d=`date "+%Y%m%d%H%M%S"`
    fname=${BACKUP_DIR}/backup_${d}.tgz
    log "开始备份 ${fname}"
    tar -zcf ${fname} ${SOURCE_DIR}

    scp ${fname} $REMOTE_USER@$REMOTE_IP:$REMOTE_DIR
    log "备份到远程成功"


    log "开始删除7天前的备份"
    find ${BACKUP_DIR} -type f  -atime +7 |xargs -t -i rm {}
    log "删除完毕"
}


main >> ${LOG_DIR}/backup.log  2>&1

创建定时任务,每天2点全量备份

 0 2 * * * sh /data/opt/mongodb/backup/backup-mongodb.sh

同时,远程备份服务器的定时清理脚本

source /etc/profile

BACKUP_DIR=/data/opt/backup
LOG_DIR=/data/log/backup

function log()
{
  echo "[ `date '+%Y-%m-%d %H:%M:%S'` ] $1"
}


# 
function main(){

    log "开始删除7天前的备份"
    find ${BACKUP_DIR} -type f  -atime +7 |xargs -t -i rm {}
    log "删除完毕"
}

main >> ${LOG_DIR}/clean_backup.log 2>&1
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
群晖使用 docker部署 Mongodb

Mongodb的安装 1、在Docker中选择左侧的注册表搜索“mongo”,双击第一个选择所需版本进行下载(Docker在套件中直接安装即可) 2、在镜像中,双击选择下载好的镜像进行配置安装即可,安装完启...

osc_7cexpmnb
2019/04/01
21
0
docker备份mongodb数据,导入导出

场景:服务器要升级,之前在linux部署的mongodb没有用docker,升级后,mongodb要用docker部署,并将原有的mongodb数据导入到docker部署的mongodb中。 1.在linux安装的mongodb文件下导出mongo...

osc_vi5grwn5
2018/12/20
19
0
Docker MongoDB使用

搜索镜像 2. 拉取镜像 MongoDB 提供官方镜像,下载安装镜像方法如下: 3. 查看镜像 4. 启动镜像 指定容器的端口映射,mongodb 默认端口为 27017 为容器数据的挂载目录,这里是将即本机中的目...

RyeHunsy
2019/09/09
66
0
mongoDB导出-导入数据

--导出数据集 C:MongoDBdbbin>mongoexport -d ttx-xwms-test -c things -o d:mongo_datathings.txt C:MongoDBdbbin>mongoexport -d ttx-xwms -c interfacelogbody -o C:UsersAdministratorDe......

osc_lgzw9jc5
2018/11/27
2
0
Docker--部署mongodb+.netcore+nginx

前言   公司租用的阿里云的服务器,每年会更换一次,很麻烦,还容易出问题,想会不会有更方便的方式来迁移服务器,就这样接触到了docker。   参考网上的一些资料,自己琢磨了一段时间,记...

osc_9fk93pk2
2019/07/23
7
0

没有更多内容

加载失败,请刷新页面

加载更多

平时使用的Lszrz到底是什么协议?说说Xmodem/Ymodem/Zmodem

XMODEM, YMODEM, and ZMODEM 由于平时使用rz/sz较多,r/s好理解,一个send一个receive。但是由不太清楚z是什么意思,故有此文。 sx/rx, sb/rb (b=batch)和sz/rz分别实现了xmodem,ymodem和z...

独钓渔
今天
17
0
真正的强智能时代已经到来。道翰天琼认知智能机器人平台API大脑。

最近,我常说人工智能的寒冬快要来了,提醒业界要做好思想准备,但同时我也说:冬天来了,春天就不会远了…… 2019年6月我写了篇文章《深度学习的问题究竟在哪?》,说到深度学习的一个主要问...

jackli2020
今天
24
0
什么是控制型人格,控制型人格的筛查测试

一、 什么是控制性人格 拥有控制型人格的人,他们会尽力的隐藏自己的意图,但是又会使用很微妙的方式来利用周围人的弱点,进而占取便宜时,使他们能够得到自己想要的东西。这类人的控制欲非常...

蛤蟆丸子
今天
14
0
【Spring】Spring AOP 代理对象生成逻辑源码分析

1. spring aop案例(POJO注入) 1.0 被代理接口 TargetInterface /** * 被代理的接口 * @author Yang ZhiWei */public interface TargetInterface { void show(); String show......

ZeroneLove
今天
36
0
聊聊dubbo-go的gracefulShutdownFilter

序 本文主要研究一下dubbo-go的gracefulShutdownFilter gracefulShutdownFilter dubbo-go-v1.4.2/filter/filter_impl/graceful_shutdown_filter.go type gracefulShutdownFilter struct {......

go4it
今天
30
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部