1. 程式人生 > >Docker部署MongoDB副本集

Docker部署MongoDB副本集

實驗性質,副本集的三個節點都部署在同一臺機器上

基本資訊如下

伺服器地址 10.10.10.191副本集名稱 rs容器節點及埠對映        n0 37017:27017        n1 47017:27017
        n2 57017:27017

步驟如下

1.啟動三個節點

docker run --name m0 -p 37017:27017 -d mongo --replSet "rs"
docker run --name m1 -p 47017:27017 -d mongo --replSet "rs"
docker run --name m2 -p 57017:27017 -d mongo --replSet "rs"

2.連線任意一個節點,進行副本集配置

使用docker進入一個有mongo客戶端的容器
docker run -it --rm mongo bash
連線三個節點中的任意一個,注意ip地址為宿主機ip,我當前的為10.10.10.191  
mongo --host 10.10.10.191 --port 37017
此時已連線到m0節點,進行副本集配置
var config={
     _id:"rs",
     members:[
         {_id:0,host:"10.10.10.191:37017"},
         {_id:1,host:"10.10.10.191:47017"},
         {_id:2,host:"10.10.10.191:57017"}
]};
rs.initiate(config)
響應應該類似下面,注意此時命令提示符已經發生變化,由原來的 > 變成了 rs:SECONDARY>
{
    "ok" : 1,
    "operationTime" : Timestamp(1522810920, 1),
    "$clusterTime" : {
        "clusterTime" : Timestamp(1522810920, 1),
        "signature" : {
            "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
            "keyId" : NumberLong(0)
        }
    }
}
檢視副本集配置資訊
rs.conf()
檢視副本集狀態
rs.status()