MongoDB - Creating a MongoDB replica set using Docker
要用 Docker 測試 MongoDB replica set 我們要先建立 Docker network。
docker network ls
docker network create mongo-cluster
docker network ls
然後起第一個 MongoDB 的 Docker 容器,設定使用 Docker network,並用 –replSet 參數指定 replSet 的名稱。
docker run -p 27017:27017 --name mongo1 --net mongo-cluster mongo mongod --replSet rs0
接著起第二個 MongoDB 的 Docker 容器,一樣設定使> 用 Docker network,且用 –replSet 參數指定 replSet 的名稱。
docker run -p 27027:27017 --name mongo2 --net mongo-cluster mongo mongod --replSet rs0
最後起第三個 MongoDB 的 Docker 容器,一樣設定使用 Docker network,且用 –replSet 參數指定 replSet 的名稱。
docker run -p 27037:27017 --name mongo3 --net mongo-cluster mongo mongod --replSet rs0
然後連進某一個容器內運行 mongo 命令。
docker exec -it mongo1 mongo
調用 rs.initate 命令,將三個 MongoDB instance 資料帶入,初始 MongoDB 的 replica set。
rs.initiate( { _id : “rs0”,members: [{ _id: 0, host: “mongo1” },{ _id: 1, host: “mongo2” },{ _id: 2, host: “mongo3” } ]})
設完後可調用 rs.conf 命令確認設定。
rs.conf()
並調用 rs.status 命令確認 replica set 的 primary/secondary 的切換、抄寫、狀態、設定都是正常的。
rs.status()