Docker ComposeでMongoDBのReplica Setを使う
Docker ComposeでMongoDBのReplica Setを試したときのメモ。
準備
docker-compose.yml
version: '3' services: mongo01: image: mongo:4.4 command: mongod --replSet rs1 --bind_ip_all ports: - "27017:27017" mongo02: image: mongo:4.4 command: mongod --replSet rs1 --bind_ip_all ports: - "27018:27017" mongo03: image: mongo:4.4 command: mongod --replSet rs1 --bind_ip_all ports: - "27019:27017"
手順
ホスト(Mac)の/etc/hosts
に以下を登録する。
127.0.0.1 mongo01 mongo02 mongo03
Docker ComposeでMongoDBを起動する。
% docker-compose up -d
Replica Setを設定する。
% mongo --port 27017 > rs.initiate({ _id: "rs1", members: [ {_id: 0, host: "mongo01:27017"}, {_id: 1, host: "mongo02:27017"}, {_id: 2, host: "mongo03:27017"} ] })
動作確認
% mongo --host rs1/127.0.0.1:27017,127.0.0.1:27018,127.0.0.1:27019 MongoDB shell version v4.4.3 connecting to: mongodb://127.0.0.1:27017,127.0.0.1:27018,127.0.0.1:27019/?compressors=disabled&gssapiServiceName=mongodb&replicaSet=rs1