kingschan1204 / blog

个人技术blog
https://github.com/kingschan1204/blog/issues
1 stars 1 forks source link

在win10 docker 上部署mongodb #29

Open kingschan1204 opened 5 years ago

kingschan1204 commented 5 years ago

思路

拉取mongo镜像 - 创建存储卷 - 启动容器 - 设置权限 - 完成

拉取镜像

pull mongo

创建存储卷

docker本身的镜像都属于只读,要保存数据就需要找个地方存。 注意: 这个数据目录挂接在win10下是个坑 通常情况是建个目录,如(d:\dockerdata\mongo)使用 -v 命令参数进行连接,网上大部分的教程都是如此。实际会出现权限问题,无法正常启动。巨坑无比,浪费了好多时间 解决: 使用数据卷(Volume)解决,可以理解位虚拟磁盘。 创建存储卷

运行镜像

run-mongo-images 参数: docker run 运行容器 --name mongodb 运行容器的名称为mongodb -v mongodata:/data/db 挂接保存数据的位置,冒号前面是本机(mongodata),后面是虚拟机中的映射目录(/data/db) -p 27017:27017 映射端口,前面是本机端口,后面是docker内的端口 --auth 授权访问

设置权限创建账号

mongo-auth


Microsoft Windows [版本 10.0.18362.175]
(c) 2019 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>docker exec -it mongodb mongo admin MongoDB shell version v4.0.10 connecting to: mongodb://127.0.0.1:27017/admin?gssapiServiceName=mongodb Implicit session: session { "id" : UUID("bd29cd35-c70a-4e61-bfd3-f0d0de726348") } MongoDB server version: 4.0.10 Welcome to the MongoDB shell. For interactive help, type "help". For more comprehensive documentation, see http://docs.mongodb.org/ Questions? Try the support group http://groups.google.com/group/mongodb-user

db.createUser({ ... user: 'root', ... pwd: 'admin', ... roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] ... }); Successfully added user: { "user" : "root", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] } db.auth("root","admin"); 1 use istock; switched to db istock db.createUser({ ... user: 'istock', ... pwd: 'password', ... roles: [ { role: "readWrite", db: "istock" } ] ... }); Successfully added user: { "user" : "istock", "roles" : [ { "role" : "readWrite", "db" : "istock" } ] } db.auth("istock","password"); 1


## 连接mongo
![robo3t](https://user-images.githubusercontent.com/4113891/60397561-ec0e7380-9b80-11e9-8e8d-9884f8a03b34.png)
## ok
![ok](https://user-images.githubusercontent.com/4113891/60397565-f29ceb00-9b80-11e9-927f-8af29c1b6151.png)