banner
RustyNail

RustyNail

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

Dockerの実行中に、MongoDBの価格がReplicate Setモードで開始されています。

現在、Docker で実行されている単一の MongoDB があり、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 モードで実行し、設定ファイルの場所を指定します。

  • 設定ファイルとキーファイルの場所を指定します。

3. mongod.conf 設定ファイル#

ファイルでデータの場所とキーファイルの場所を指定します。

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

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

4. mongo.keyfile#

キーファイルの内容は openssl ツールを使用して生成します。

openssl rand -base64 756 > mongo.keyfile

権限を設定します:

chmod 400 mongo.keyfile

ユーザーを設定します:

chown 999:999 mongo.keyfile

そうしないと、「permission too open」などの権限エラーが発生し、MongoDB が起動しなくなります。

5. MongoDB の起動#

MongoDB コンテナのクライアントに入ります。

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

初期化します。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。