页面可视化搭建框架的 mongo 数据库
在 docker 中运行 mongoDB, 并将数据库数据保存在 host 中.
- docker
- docker-compose
- mongoDB:3.4.7
- 数据库路径
./db/
- 数据库名称
pipeline
- 连接用户: mongouser, 密码: password, authdatabase: admin
$ docker-compose up -d # 后台启动
$ docker-compose -f docker-compose.dev.yml up --build --force-recreate
开发模式的数据库名称为 pipeline
- 查看 containers
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
094340a78222 pipelinemongodb_web "docker-entrypoint..." 7 seconds ago Up 4 seconds 0.0.0.0:27017->27017/tcp pipelinemongodb_web_1
- 在新 terminal 进入 container
// 推荐方式
$ docker exec -it `docker ps -f name=pipeline -q` bash
// 使用 container id 进入
$ docker exec -it 094340a78222 bash
- 在 container 里面连接 monggoDB, 使用自带的 mongo shell
root@094340a78222:/# mongo
MongoDB shell version v3.4.7
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.7
Welcome to the MongoDB shell.
...
- 查看数据库
> show dbs
- 查看 collection
> show collections
- 删除
db
目录
$ rm -rf ./db
- 恢复
db
目录
$ git checkout ./db
使用一个新的 container 连接 mongo, 并使用 mongo shell 执行 script 初始化数据库. 在 docker-compose up
时候运行 mongo-seed
, 在初始化完成后自动退出.
- mongo script
为保障数据库安全, 连接时候需要用户认证, mongoDB 的用户认证需要在数据库中添加用户.
- docker 启动 mongo 添加用户
根用户: root / password
- mongod 启动验证
https://docs.mongodb.com/manual/tutorial/enable-authentication/
- 用户认证方法 用户认证比较好的方式是先连接到认证数据库(如: admin), 然后在切换到业务数据库.
mongo shell 的连接方式, 使用 --anthenticationDatabase
指定认证数据库:
$ mongo -u user -p pass --authenticationDatabase databaseName mongodb:27017/db
mongoose 连接方式 -- Support authSource:
mongoose.connect('mongodb://user:pass@host:27017/db?authSource=databaseName')
// or
mongoose.connect(uri, { auth: { authSource: 'databaseName' }})
- dockerfile 官方文档
- compose 官方文档
- mongod 启动命令官方文档