mongodb 使用docker-compose文件创建mongdb容器时出现security.keyFile错误

mfuanj7w  于 2023-11-17  发布在  Go
关注(0)|答案(1)|浏览(285)

我以前的docker-compose文件配置是

image: mongo:4.2-bionic
container_name: mongodb1
restart: on-failure
env_file: .env
environment:
  - MONGO_INITDB_ROOT_USERNAME=$MONGO_USERNAME
  - MONGO_INITDB_ROOT_PASSWORD=$MONGO_PASSWORD
ports:
  - "$MONGO_PORT:27017"
volumes:
  - data1:/data/db
networks:
  - app_network
command: ["--replSet", "rs0", "--bind_ip_all"]

字符串
这工作正常。它会创建docker-container,然后我会在docker-container内创建副本。但后来我将docker镜像升级到mongo:6.0.3,现在每次我尝试启动容器时都会抛出错误:
BadValue:当使用副本集启用授权时,需要security.keyFile

t3irkdon

t3irkdon1#

你需要创建你的密钥文件。MongoDB中的密钥文件用于身份验证,并确保副本集或分片集群的成员之间的安全通信。
你可以这样生成它:

openssl rand -base64 756 > mongodb-keyfile

字符串
然后指定mongod经常使用的用户ID和组ID(999)

sudo chown 999:999 mongodb-keyfile


最后,你在docker-compose中指定它,像这样:

version: '3.7'
services:

  # Users Mongo
  users_mongo_master:
    image: mongo:latest
    container_name: users_mongo_master
    ports:
      - 27010:27017
    command: mongod --replSet usersRS --keyFile /etc/mongo/mongodb-keyfile --config /etc/mongo/mongod.conf


你对你的复制品也做同样的事
希望这能帮上忙

相关问题