【问题标题】:Create user on Docker creation MongoDB在 Docker 创建 MongoDB 上创建用户
【发布时间】:2021-06-02 08:03:49
【问题描述】:

我目前正在创建一个数据库和一个控制它的 python 文件。我遇到的问题是它运行但用户的创建似乎没有在 docker-compose up 命令后发生。我对 Mongo 用户的了解有限,但实际上我现在只需要一个拥有大部分权限的用户。我的 docker-compose 文件如下所示:

version: '3'
services:
   storing_script:
     build:
      context: .
      dockerfile: Dockerfile
    depends_on:
      - mongo

mongo:
  image: mongo:latest
  environment:
        MONGO_INITDB_ROOT_USERNAME: user
        MONGO_INITDB_ROOT_PASSWORD: pas342%4@!
        MONGO_INITDB_DATABASE: motionDB
volumes:
- ${PWD}/mongo-data:/data/db
- ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
command: mongod --port 27018
restart: unless-stopped

存储脚本有自己的 DockerFile。我已经连接到 mongo 容器并且它确实运行,它确实工作但它似乎完全忽略了用户的创建。我在卷中指定使用 js 文件进行创建,如下所示:

db.createUser(
    {
        user: "<user for database which shall be created>",
        pwd: "<password of user>",
        roles: [
            {
                role: "readWrite",
                db: "<database to create>"
            }
        ]
    }
);

是我的撰写文件有问题,还是我需要手动创建和验证用户?我查看了其他主题,他们似乎都推荐这个。在运行 docker-compose up 时,一个特定的话题说我应该收到一个“用户创建的”(https://stackoverflow.com/a/42973849/15718345),但我从来没有收到过。同样,我不是 Mongo 专家,我的目标只是让 a 用户尽快工作。

【问题讨论】:

    标签: database mongodb docker


    【解决方案1】:

    显然它一直在存储,访问容器时必须进行身份验证。

    mongo --port 27018 --authenticationDatabase "admin" -u "user" -p "pas342%4@!"
    

    然后你可以看到数据库和集合,我又不是 mongo 专家,所以我不完全理解为什么我必须通过身份验证连接到它才能看到数据库。如果有人知道,将不胜感激:)

    【讨论】:

      猜你喜欢
      • 2020-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-28
      • 1970-01-01
      • 2019-06-29
      • 2020-08-23
      • 2011-04-22
      相关资源
      最近更新 更多