利用Docker搭建MongoDB副本叢集
步驟如下(1master,2slave為例):
先拉取mongod映象
啟動三個mongo容器:
sudo docker run –name mongo_server1 -p 21117:27017 -d 127.0.0.1:5000/mongod:latest –smallfiles –replSet rs1
sudo docker run –name mongo_server2 -p 22117:27017 -d 127.0.0.1:5000/mongod:latest –smallfiles –replSet rs1
sudo docker run –name mongo_server3 -p 23117:27017 -d 127.0.0.1:5000/mongod:latest –smallfiles –replSet rs1檢視各個IP:
依次執行:sudo docker exec mongo_server1 ifconfig配置成員資訊:
成員1:
I. sudo docker exec -it mongo_server1 /bin/bash
II. myconf = {“_id”:”rs1”,”members”:[
{“_id”:0,”host”:”172.17.0.2:27017”},
{“_id”:1,”host”:”172.17.0.3:27017”},
{“_id”:2,”host”:”172.17.0.5:27017”}
]}
III. rs.initiate(myconf)
IV. rs.isMaster()
然後檢視配置:rs.conf()成員2、3:
I. rs.slaveOk()
II. use admin
III. db.getMongo().setSlaveOk()
IV. db.setSlaveOk()配置使用者名稱和密碼:
I. docker exec -it mongo_server1 /bin/bash
II. mongo
III. use 資料庫
IV. db.createUser(
{
user: “使用者名稱”,
pwd: “密碼”,
roles:[{role:’userAdmin’,db:’資料庫’}]
}
);