node.js - 为 mongoDB 设置身份验证 - DOCKER

标签 node.js mongodb docker docker-compose

当我执行docker-compose up -d时,我有一个mongoDB实例,mongoDB容器正在运行,并且他尝试从用户那里获取身份验证。

但是我使用 docker-compose 并在其中设置了凭据,但是当运行 docker-compose up 时,用户未连接。

下面,您可以看到我的docker-compose.yml:

version: "2"
services:
  web:
    image: kolacaine/docker-hello-world
    ports:
    - "80:8081"
    depends_on:
    - mongo-service
  mongo-service:
    image: mongo
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: myUserAdmin
      MONGO_INITDB_ROOT_PASSWORD: abc123
    command: mongod --auth
    ports:
    - "27017:27017"

什么也没发生,他总是在我的容器内询问身份验证。

最佳答案

我认为您误解了 MONGO_INITDB_ROOT_USERNAME 和密码的用途,它们用于创建默认 root 用户,而不是提供预填充的凭据。因此,要连接到 mongo shell,您需要使用 mongo -u myUserAdmin -p abc123

PS 命令:mongod --auth 是多余的,入口点脚本在看到您使用这 2 个环境时会自动执行此操作。

关于node.js - 为 mongoDB 设置身份验证 - DOCKER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53591614/

相关文章:

javascript - 使用 Node Js 测量处理时间?

node.js - "describe"和 "it"语句内的变量范围

javascript - Express JS - 无法将数组推送到 MongoDB 中的表

mongodb - 如何在 MongoDB 中按字段值排序

docker - 如何使用Docker获取JDK + MySQL + Tomcat容器?

node.js - Nodejs EventLoop(带集群模块)和Golang Scheduler的比较

javascript - 发送新的 HTML 页面,并在原始页面发出 POST 请求后向其发出 GET 请求

mongodb - 从 $in 查询中返回匹配的元素

docker - 在没有互联网连接的情况下运行 docker compose 文件

docker - sbt-native-packager docker:如何在/etc/hosts中添加条目