当前位置: 首页 > 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

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

相关文章:

  • 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设备上飞驰
  • 高瓴、景林旗下公司美股持仓揭晓:双双增持中概股
  • 雅典卫城上空现“巨鞋”形状无人机群,希腊下令彻查
  • 魔都眼|锦江乐园摩天轮“换代”开拆,新摩天轮暂定118米
  • 玉渊谭天丨卢拉谈美国降低对华关税:中国的行动捍卫了主权
  • 文化润疆|为新疆青少年提供科普大餐,“小小博物家(喀什版)”启动
  • 国务院办公厅印发《国务院2025年度立法工作计划》