当我执行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"
什么也没有发生,他总是在我的容器内要求进行身份验证。
答案 0 :(得分:3)
我认为您误解了MONGO_INITDB_ROOT_USERNAME
和密码的用途,它们用于创建默认的root用户而不提供预先填写的凭据。因此,要连接到mongo shell,您需要使用mongo -u myUserAdmin -p abc123
。
PS command: mongod --auth
是多余的,入口点脚本在看到您使用这两个环境时会自动执行。