为实例mongoDB设置身份验证-DOCKER

时间:2018-12-03 10:16:47

标签: 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"

什么也没有发生,他总是在我的容器内要求进行身份验证。

1 个答案:

答案 0 :(得分:3)

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

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