banner
RustyNail

RustyNail

coder. 【blog】https://rustynail.me 【nostr】wss://ts.relays.world/ wss://relays.world/nostr

Docker 運行中 單價 MongoDB 開啟Replicate Set 模式

現有一台單機運行中的 mongodb,跑在 docker 裡,現在需要讀取其 oplog,所以要開啟 replSet 模式。

1、停機#

把數據目錄拷貝一下備份好

2、docker-compose 文件修改#

 mongodb:
    command: mongod --replSet rs -f /etc/mongod.conf
    volumes:
        - ./mongod.conf:/etc/mongod.conf
        - ./mongo.keyfile:/etc/mongo.keyfile
  • 新增 --replSet rs-f 參數指定運行方式為 rs 以及配置文件的位置

  • 指定配置文件和 key 文件的位置

3、mongod.conf 配置文件#

文件指定數據位置、keyfile 位置

storage:
  dbPath: /data/db
  journal:
    enabled: true
processManagement:
  timeZoneInfo: /usr/share/zoneinfo

security:
  authorization: enabled
  keyFile: /etc/mongo.keyfile

4、mongo.keyfile#

keyfile 的內容用 openssl 工具生成即可

openssl rand -base64 756 > mongo.keyfile

設置權限:

chmod 400 mongo.keyfile

設置用戶

chown 999:999 mongo.keyfile

否則 會出現 permission too open 等權限報錯,mongo 起不來。

5、啟動 mongo#

進入 mongo 容器的 client

rs.initiate({ _id: "rs", members: [{_id:0,host:"ip:port"}]}

初始化

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。