MongoDb副本集

  • Carter Ho
  • 2 Minutes
  • 2019年9月28日

Docker 運行簡易MongoDb副本集(Replca Set Arbiter)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 建立容器私有網段
docker network create --subnet=10.100.0.0/16 mongo

# 因為mongo跑起來時conf host名稱預設會帶containerId所以這邊先指定給容器內往IP,不然宿主在連副本集會找不到該hostname
docker run -d --network mongo --ip 10.100.0.2 --name mongo1 --hostname 10.100.0.2 -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -p 7001:27017 mongo:4.2.0 mongod --replSet mongoCluster
docker run -d --network mongo --ip 10.100.0.3 --name mongo2 -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -p 7002:27017 mongo:4.2.0 mongod --replSet mongoCluster
docker run -d --network mongo --ip 10.100.0.4 --name mongo3 -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -p 7003:27017 mongo:4.2.0 mongod --replSet mongoCluster

# 進入容器設定副本集
docker exec -it mongo1 bash
mongo
rs.initiate()
rs.add('10.100.0.3:27017')
rs.addArb('10.100.0.4:27017')

# 加入容器內往IP網段
route add 10.100.0.0 MASK 255.255.255.0 10.0.75.2