Docker 配置MongoDB(4.2.0)副本集-用户配置

默认主机配置好Docker MongoDB(4.2.0)副本集环境,可参考前一篇文章:https://www.jianshu.com/p/10c9d1a757da

  • 进入主节点,创建用户

    mongo
    use admin
    db.createUser({user:"{user}", pwd:"{password}", roles:[{role: "root", db:"admin" }]})
    
  • 退出主节点容器,返回宿主机,创建keyfile

    openssl rand -base64 113 > $PWD/test/keyfile
    chmod 600 $PWD/test/keyfile
    chown 999 $PWD/test/keyfile
    
  • 关闭所有节点,并删除相关容器

    docker stop [{container}]
    docker rm [{container}]
    
  • 主节点宿主机生成的keyfile,拷贝至每个节点宿主机当前路径

  • 重新生成各个容器

    docker run -d -p {port}:27017 -v $PWD/db:/data/db -v $PWD/keyfile:/opt/keyfile --name mongo mongo --replSet {replSetName} --keyFile /opt/keyfile --auth
    
  • 进入容器,测试用户

    mongo
    show dbs #无法查看数据库信息
    
    use admin
    db.auth("{user}","{password}") #能够查看数据库信息
    
    或直接创建mongodb连接:
    mongo {IP}:{PORT}/admin -u {user} -p {password}
    show dbs #能够查看数据库信息
    

过程中尝试使用配置文件使用户生效,但未成功
将mongod.conf.orig重命名为mongod.conf,并增加以下配置,并使用以下命令启动容器,结果容器启动失败,docker logs无任何提示信息,由于时间原因,暂时未做深入研究,后面有空再去多了解一下

security:
  authorization: enabled
  keyFile: /opt/keyfile
  clusterAuthMode: keyFile

启动容器

docker run -d -p {port}:27017 -v $PWD/db:/data/db -v $PWD/mongod.conf:/opt/mongod.conf --name mongo mongo --replSet {replSetName} --config /opt/mongod.conf --auth

你可能感兴趣的:(Docker 配置MongoDB(4.2.0)副本集-用户配置)