当前位置: 首页 > news >正文

使用 docker 一键部署 MongoDB

目录

1. 前期准备

2. 导入镜像

3. 部署MongoDB脚本

4. 配置模板文件

5. 部署MongoDB

6. 部署后配置

7. 基本维护


1. 前期准备

新部署前可以从仓库(repository)下载 MongoDB 镜像,或者从已有部署中的镜像生成文件:

# 查看当前本地镜像
docker images
# 生成本地镜像文件
docker save <IMAGE ID> -o mongodb_3015.tar

生成 MongoDB 副本集所需的 autokey 文件:

# 建立autokey文件
openssl rand -base64 756 > autokey
# 修改读写模式
chmod 400 autokey

2. 导入镜像

# 在新部署的机器上导入镜像
docker load -i mongodb_3015.tar
docker images

3. 部署MongoDB脚本

mongodb-deploy.sh 文件内容如下:

#!/bin/bashmkdir -p /usr/local/docker/mongodb/conf
mkdir -p /usr/local/docker/mongodb/data
cp /root/autokey /usr/local/docker/mongodb/data/
cp /root/mongodb.conf.template /usr/local/docker/mongodb/conf/mongodb.conf
chown -R polkitd:root /usr/local/docker/mongodb/docker run --name mongo \
-v /usr/local/docker/mongodb/data:/data/db \
-v /usr/local/docker/mongodb/conf:/data/conf \
-p 27017:27017 \
-e TZ=Asia/Shanghai \
-itd a.com:8443/dockerhub/mongo:3.0.15 \
--replSet mvbox_new

4. 配置模板文件

mongodb.conf.template 文件内容如下:

port            = 27017
logpath         = /data/db/mongodb.log
pidfilepath     = /data/db/mongodb.pid
dbpath          = /data/db/
logappend       = true
fork            = true
journal         = true
directoryperdb  = true
auth            = true
maxConns        = 1000
profile         = 1
replSet         = mvbox_new
keyFile         = /data/db/autokey

5. 部署MongoDB

# 在所有 MongoDB 副本集机器执行
./mongodb-deploy.sh

6. 部署后配置

在 primary 机器上执行下面的操作。

# 配置副本集
cp /root/rs_initiate.js /usr/local/docker/mongodb/data/
docker exec -it mongo mongo --port 27017 /data/db/rs_initiate.js

rs_initiate.js 文件内容如下:

rs.initiate({_id: "mvbox_new",version: 1,members: [{ _id: 0, host : "172.18.29.56:27017", priority:2 },{ _id: 1, host : "172.18.29.57:27017", priority:1 },{ _id: 2, host : "172.18.29.58:27017", priority:1 }]}
)
# 创建 admin 用户
docker exec -it mongo mongo --port 27017use admin;
db.createUser({user : "admin", pwd : "123456", roles: [ { role : "root", db : "admin" } ] });
exit;# 重新登录,创建更多用户
docker exec -it mongo mongo --port 27017 -u admin -p 123456 adminuse admin
db.createUser({user : "vvmusic_msg", pwd : "123456", roles: [ { role : "dbOwner", db : "vvmusic_msg" } ] });
db.createUser({user : "vvlive", pwd : "123456", roles: [ { role : "dbOwner", db : "vvlive" } ] });
use vvmusic_msg
db.createUser({user : "vvmusic_msg", pwd : "123456", roles: [ { role : "dbOwner", db : "vvmusic_msg" } ] });
use vvlive
db.createUser({user : "vvlive", pwd : "3123456", roles: [ { role : "dbOwner", db : "vvlive" } ] });
exit;# 验证用户登录
docker exec -it mongo mongo --port 27017 -u admin -p 123456 admin
docker exec -it mongo mongo --port 27017 -u vvlive -p 123456 admin
docker exec -it mongo mongo --port 27017 -u vvlive -p 123456 vvlive
docker exec -it mongo mongo --port 27017 -u vvmusic_msg -p 123456 admin
docker exec -it mongo mongo --port 27017 -u vvmusic_msg -p 123456 vvmusic_msg

7. 基本维护

# 查看镜像
docker images
# 查看容器
docker ps
# 查看容器详细信息
docker inspect <CONTAINER ID>
# 重启容器
docker restart mongo
# 停止容器
docker stop mongo
# 删除容器
docker rm mongo
http://www.lryc.cn/news/102414.html

相关文章:

  • 【深度学习】Inst-Inpaint: Instructing to Remove Objects with Diffusion Models,指令式图像修复
  • 创建维基WIKI百科和建立百度百科有何不同?
  • Python小红书旋转验证码识别
  • ELK搭建
  • webyog最新社区版免费版下载地址
  • [SQL挖掘机] - 窗口函数 - dense_rank
  • stable diffusion
  • web3行业有哪些职业发展路径?
  • MATLAB算法实战应用案例精讲-【自动驾驶】相控阵天线方向图
  • ALLEGRO之View
  • 【打造超酷的GitHub主页】
  • Transformer 论文学习笔记
  • Open3D(C++) 根据索引提取点云
  • 企业服务器数据库中了_locked勒索病毒怎么解密,_勒索病毒简介与防护
  • 面试题 什么是 MyBatis 的接口绑定,有什么好处?
  • [RocketMQ] Consumer 负载均衡服务 RebalanceService入口源码 (十五)
  • 【K210】K210学习笔记六——MaixHub在线模型训练识别数字
  • 142. 环形链表 II
  • Flutter系列文章-Flutter进阶2
  • css实现鼠标滑动左下角弹框带动画效果
  • 【Spring Cloud Alibaba】限流--Sentinel
  • ARM将常数加载到寄存器方法之LDR伪指令
  • 深入理解Gradle构建系统的工作原理
  • STM32F030C8T6输出3路PWM
  • 如何理解原型及原型链?js的继承方式
  • C# 按表格中的某列排序/查询
  • 【Vue】】img使用 :src 动态绑定图片地址,但是加载图片不成功
  • list模拟
  • python字典:怎么取出key对应的值
  • okvis