【发布时间】:2018-06-09 17:34:20
【问题描述】:
我是 docker 新手,正在尝试在我的 docker 容器上设置我的第一个 mongo db 用户。 我按照这个get mongo for docker tutorial 开始,它提供了这个.yml 文件:
# Use root/example as user/password credentials
version: '3.1'
services:
mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
mongo-express:
image: mongo-express
restart: always
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: example
然后我使用docker-compose up 创建我的容器实例。
完成此操作后,我 ssh 进入容器并尝试执行简单的 show dbs 查询。
每当我运行此命令或任何其他命令时,我都会收到以下授权消息:
> use admin
switched to admin
> show dbs
2018-06-09T17:20:48.644+0000 E QUERY [thread1] Error: listDatabases failed:{
"ok" : 0,
"errmsg" : "not authorized on admin to execute command {
listDatabases: 1.0, $db: \"admin\" }",
"code" : 13,
"codeName" : "Unauthorized"
}
我读到当你使用像MONGO_INITDB_ROOT_USERNAME 和MONGO_INITDB_ROOT_PASSWORD 这样的环境变量时,你不必使用--auth,因为这涵盖了我,所以我可以做一些事情,比如创建用户?
https://stackoverflow.com/a/42973849/4819186
有人能指出我如何正确设置用户的正确方向吗?谢谢。
【问题讨论】:
标签: mongodb docker docker-compose yaml