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"}]}

初始化

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。