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

【记录】使用 Docker 搭建 MongoDB 分布

创建docker网络

docker network create mongo_cluster_net

在这里插入图片描述

docker pull mongo:3.6

在这里插入图片描述

https://www.mongodb.com/zh-cn/docs/manual/tutorial/install-mongodb-enterprise-with-docker/

在这里插入图片描述

https://www.mongodb.com/zh-cn/docs/manual/reference/configuration-file-settings-command-line-options-mapping/#std-label-conf-file-command-line-mapping

在这里插入图片描述

nameport1port2port3
shard1270012800129001
shard2270022800229002
shard3270122801229012
configserver270032800329003
mongos27004--
su
mkdir -p /mnt/mongo/data/
mkdir -p /mnt/mongo/log/
ll /mnt/mongo

在这里插入图片描述

期间失败可能会用到

停止全部容器

docker stop $(docker ps -q)

删除全部容器

docker container prune
nameport1port2port3
shard1270012800129001
docker run -d -p 27001:27018 \
-v /mnt/mongo/data/shard10/:/data/db/ \
-v /mnt/mongo/log/shard10/:/data/configdb/ \
--network mongo_cluster_net \
--name shard10 mongo:3.6 \
mongod --shardsvr --replSet shard1 --logpath=/data/configdb/shard1.log

docker run -d -p 28001:27018 \
-v /mnt/mongo/data/shard11/:/data/db/ \
-v /mnt/mongo/log/shard11/:/data/configdb/ \
--network mongo_cluster_net \
--name shard11 mongo:3.6 \
mongod --shardsvr --replSet shard1 --logpath=/data/configdb/shard1.log

docker run -d -p 29001:27018 \
-v /mnt/mongo/data/shard12/:/data/db/ \
-v /mnt/mongo/log/shard12/:/data/configdb/ \
--network mongo_cluster_net \
--name shard12 mongo:3.6 \
mongod --shardsvr --replSet shard1 --logpath=/data/configdb/shard1.log

在这里插入图片描述

nameport1port2port3
shard2270022800229002
docker run -d -p 27002:27018 \
-v /mnt/mongo/data/shard20/:/data/db/ \
-v /mnt/mongo/log/shard20/:/data/configdb/ \
--network mongo_cluster_net \
--name shard20 mongo:3.6 \
mongod --shardsvr --replSet shard2 --logpath=/data/configdb/shard2.log

docker run -d -p 28002:27018 \
-v /mnt/mongo/data/shard21/:/data/db/ \
-v /mnt/mongo/log/shard21/:/data/configdb/ \
--network mongo_cluster_net \
--name shard21 mongo:3.6 \
mongod --shardsvr --replSet shard2 --logpath=/data/configdb/shard2.log

docker run -d -p 29002:27018 \
-v /mnt/mongo/data/shard22/:/data/db/ \
-v /mnt/mongo/log/shard22/:/data/configdb/ \
--network mongo_cluster_net \
--name shard22 mongo:3.6 \
mongod --shardsvr --replSet shard2 --logpath=/data/configdb/shard2.log

在这里插入图片描述

nameport1port2port3
shard3270122801229012
docker run -d -p 27012:27018 \
-v /mnt/mongo/data/shard30/:/data/db/ \
-v /mnt/mongo/log/shard30/:/data/configdb/ \
--network mongo_cluster_net \
--name shard30 mongo:3.6 \
mongod --shardsvr --replSet shard3 --logpath=/data/configdb/shard3.log

docker run -d -p 28012:27018 \
-v /mnt/mongo/data/shard31/:/data/db/ \
-v /mnt/mongo/log/shard31/:/data/configdb/ \
--network mongo_cluster_net \
--name shard31 mongo:3.6 \
mongod --shardsvr --replSet shard3 --logpath=/data/configdb/shard3.log

docker run -d -p 29012:27018 \
-v /mnt/mongo/data/shard32/:/data/db/ \
-v /mnt/mongo/log/shard32/:/data/configdb/ \
--network mongo_cluster_net \
--name shard32 mongo:3.6 \
mongod --shardsvr --replSet shard3 --logpath=/data/configdb/shard3.log

在这里插入图片描述

nameport1port2port3
configserver270032800329003
docker run -d -p 27003:27003 --name confsvr1 \
-v /mnt/mongo/data/cfgsvr1/:/data/db/ \
mongo:3.6 --configsvr --dbpath /data/db --replSet crs --port 27003

docker run -d -p 28003:27003 --name confsvr2 \
-v /mnt/mongo/data/cfgsvr2/:/data/db/ \
mongo:3.6 --configsvr --dbpath /data/db --replSet crs --port 27003

docker run -d -p 29003:27003 --name confsvr3 \
-v /mnt/mongo/data/cfgsvr3/:/data/db/ \
mongo:3.6 --configsvr --dbpath /data/db --replSet crs --port 27003

在这里插入图片描述

shard1

docker exec -it shard11 mongo 192.168.142.130:27001
rs.initiate({ _id:"shard1", members:[
		{_id:0,host:"192.168.142.130:27001"},
		{_id:1,host:"192.168.142.130:28001",arbiterOnly:true},
		{_id:2,host:"192.168.142.130:29001"}
	]
})

rs.conf()

exit

在这里插入图片描述

shard2

docker exec -it shard21 mongo 192.168.142.130:27002
rs.initiate({ _id:"shard2", members:[
		{_id:0,host:"192.168.142.130:27002"},
		{_id:1,host:"192.168.142.130:28002",arbiterOnly:true},
		{_id:2,host:"192.168.142.130:29002"}
	]
})

rs.conf()

exit

在这里插入图片描述

shard3

docker exec -it shard31 mongo 192.168.142.130:27012
rs.initiate({ _id:"shard3", members:[
		{_id:0,host:"192.168.142.130:27012"},
		{_id:1,host:"192.168.142.130:28012",arbiterOnly:true},
		{_id:2,host:"192.168.142.130:29012"}
	]
})

rs.conf()

exit

在这里插入图片描述

config-svr

docker exec -it confsvr1 mongo 192.168.142.130:27003
rs.initiate({ _id:"crs",configsvr:true, members:[
		{_id:0,host:"192.168.142.130:27003"},
		{_id:1,host:"192.168.142.130:28003"},
		{_id:2,host:"192.168.142.130:29003"}
	]
})

rs.conf()

exit

在这里插入图片描述

mongos

nameport1port2port3
mongos27004--
docker run -d -p 27004:27017 \
-v /mnt/mongo/log/mongos1/:/var/log/mongodb/ \
--network mongo_cluster_net \
--name mongos1 \
mongo:3.6 mongos --bind_ip_all --port 27017 --configdb crs/192.168.142.130:27003,192.168.142.130:28003,192.168.142.130:29003

在这里插入图片描述

docker exec -it mongos1 mongo 192.168.142.130:27004
use admin

db.runCommand({addshard:"shard1/192.168.142.130:27001,192.168.142.130:28001,192.168.142.130:29001"})
db.runCommand({addshard:"shard2/192.168.142.130:27002,192.168.142.130:28002,192.168.142.130:29002"})
db.runCommand({addshard:"shard3/192.168.142.130:27012,192.168.142.130:28012,192.168.142.130:29012"})

db.runCommand({listshards:1})

在这里插入图片描述

db.runCommand({enablesharding:"test"})
db.runCommand({shardcollection:"test.kpl",key:{id:"hashed"}})

在这里插入图片描述

use test
show collections
db.stats()

在这里插入图片描述

kpl collection

{
	"_id": , 
	"id": , 
	"name": , 
	"age": , 
	"english": , 
	"math": , 
	"chinese": ,
	"geography": , 
	"music": , "love": 
}
var before = new Date()

for(var i = 1; i <= 100000; i++){
	db.kpl.insert({
		id: i,
		name: i,
		english: Math.round(Math.random() * 100),
		math: Math.round(Math.random() * 100),
		chinese: Math.round(Math.random() * 100),
		geography: Math.round(Math.random() * 100),
		music: Math.round(Math.random() * 100),
		love: Math.round(Math.random() * 100)
	})
	
	print(i)
}

var after = new Date()
execution_mills = after - before

print(execution_mills)

在这里插入图片描述

top

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.dtcms.com/a/80104.html

相关文章:

  • windows 平台编译openssl
  • Web开发-JS应用原生代码前端数据加密CryptoJS库jsencrypt库代码混淆
  • unityAB包(1/2)
  • Arduino示例代码讲解:Multiple tone player 多音播放器
  • 【优选算法】二分算法模板总结及应用
  • 图解AUTOSAR_CP_SOMEIP_Transformer
  • Datawhale大语言模型-Transformer以及模型详细配置
  • BFS--------N叉树的层序遍历
  • WPF的主题切换
  • 基于视觉的核桃分级与套膜装置研究(大纲)
  • 深度学习 Deep Learning 第5章 机器学习基础
  • 使用自定义指令实现css样式层叠
  • DeDeCMS漏洞
  • Matrix-Breakout-2-Morpheus靶场通关心得:技巧与经验分享
  • 机器学习-手搓KNN算法
  • 小程序API —— 54 路由与通信 - 编程式导航
  • Mistral AI发布开源多模态模型Mistral Small 3.1:240亿参数实现超越GPT-4o Mini的性能
  • Handler消息机制源码分析
  • 从模拟到现实:Sensodrive高精度力反馈技术赋能物流运输的高效与安全
  • 基于Wasm的边缘计算Pandas:突破端侧AI的最后一公里——让数据分析在手机、IoT设备上飞驰
  • 若依 Excel导入与导出 配置下拉选项
  • 通过蒸馏大模型训练建筑向智能助手模型的思路
  • 63. 根文件系统构建
  • STM32 模拟SPI 模式0
  • 大模型+知识图谱:赋能知识智能新升级
  • Harmony OS【获取本地json数据的方法】
  • 【el-upload】el-upload组件 - list-type=“picture“ 时,文件预览展示优化
  • dfs(二十)257. 二叉树的所有路径
  • /proc/[pid]/maps介绍和pmap介绍、RSS
  • 《深入理解 TypeScript:函数类型与泛型全解析》(万字长文)