我正在尝试在docker(mongo:latest)上创建本地开发环境NodeJS(节点:最新)和MongoDB,并使用mongoose连接MongoDB . 我想设置非常简单的环境 .
我的docker-compose.yml
version: '3'
services:
server:
build: .
container_name: cms_webserver
ports:
- "4000:4000"
volumes:
- ./api:/app/api
- ./node_modules:/app/node_modules
links:
- mongo
mongo:
container_name: cms_mongo
image: mongo
environment:
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=root
- MONGO_INITDB_DATABASE=cms
ports:
- "27017:27017"
volumes:
- ./docker/mongod.conf:/etc/mongod.conf
- ./data:/data/db
adminmongo:
image: mrvautin/adminmongo
ports:
- "1234:1234"
mongod.conf
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
processManagement:
fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
timeZoneInfo: /usr/share/zoneinfo
security:
authorization: disabled
net:
port: 27017
bindIp: 127.0.0.1 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
任何时候我重建docker我删除数据/的内容 . 每次我看到像新用户一样成功添加:
Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
当我尝试连接到节点中的mongoDB时使用
mongoose.connect('mongodb://mongo')
并获得有关成功的信息 .
当我尝试连接到mongoDB到默认DB:cms
mongoose.connect('mongodb://root:root@mongo/cms')
我收到一个错误:
来自客户端172.18.0.4:59142的cms上的root的SCRAM-SHA-1身份验证失败; UserNotFound:找不到用户root @cms
我的第一个问题是如何禁用安全性?我找到了一个选项来设置 security: authorization: disabled
,甚至我已经完成了这个仍然有问题 .
第二个问题是主题 .
- 运行
docker ps
并检查哪个容器属于mongo然后使用docker exec -it XXX bash
登录 . 我使用简单的命令mongo
,我可以登录到mongo . 我能做的就是用命令打开mongo
mongo -u root -proot admin
但我不能用 mongo -u root -p admin
(mongo没有问我密码)
-
作为管理员(root / root)我可以通过运行命令
use cms
创建新数据库,我也可以添加记录并检查数据库是否存在 -
我可以创建新用户让我们说:
db.createUser({user:"test",pwd:"test",roles:[{role:"dbOwner",db:"cms"}]});
-
我退出并再次尝试登录到数据库
cms
我创建并收到错误:
MongoDB shell版本v3.6.3连接到:mongodb://127.0.0.1:27017 / cms MongoDB服务器版本:3.6.3 2018-04-03T12:13:41.428 0000 E QUERY [thread1]错误:验证>失败 . :DB.prototype._authOrThrow@src/mongo/shell/db.js:1608:20 @(auth):6:1 @(auth):1:2异常:登录失败
是否有人知道发生了什么,可以解释我做错了什么,甚至让我准备好使用示例如何在我的本地设置mongo DB?我在DevOps中不是很强大而且我完全迷失了 .