mongoDB学习之--docker安装mongoDB
一、环境准备:
操作系统:centos9 stream:5.14.0-522.el9.x86_64
docker版本:27.3.1
由于最近镜像加速器也被禁的很厉害,很多要么申请白名单,要么得像阿里一样申请二级域名;
可惜配置了申请的阿里域名依然还是连不上docker hub,
1 2 3 | { "registry-mirrors" : [ "https://xxxxxx.mirror.aliyuncs.com" ] } |
报错:
1 2 3 | docker pull mongo:latest Trying to pull repository docker.io/library/mongo ... Get https: //registry-1.docker.io/v2/: read tcp 192.168.240.86:43020->54.198.86.24:443: read: connection reset by peer |
一般搜索发现不少国内的镜像依然可以使用,而且速度很给力,例如渡渡鸟:https://docker.aityp.com/
二、pull 最新mongo镜像
1 | sudo docker pull swr.cn-north- 4 .myhuaweicloud.com/ddn-k8s/docker.io/library/mongo: 7.0 . 12 |
pull 成功
三、创建镜像
(1)提前创建数据卷目录
/data/db
/data/configdb
/data/logs
文件: /data/configdb/mongod.conf
(2)创建容器:
1 2 3 4 5 6 | sudo docker run -d --name mongodb -p 27017 : 27017 --privileged= true --restart=always -v /data/db:/data/db -v /data/configdb:/data/configdb -v /data/logs:/data/log/ swr.cn-north- 4 .myhuaweicloud.com/ddn-k8s/docker.io/library/mongo: 7.0 . 12 -f /data/configdb/mongod.conf --auth |
-d 后台运行
-p 映射端口
--privileged 以root 用户身份在容器内运行
--restart 自动重启容器
-v 容器卷
-f 指明配置文件路径 容器以容器内的配置文件启动
--auth mongo开启安全认证,需要账号密码才能访问
容器启动成功
如果遇到status 是restarting的说明启动失败,可以通过 docker logs mongdodb来查看具体错误内容
(3)查看mongodb版本
1 | docker exec -it mongodb /bin/bash --进入容器<br>mongod -version --查看版本 |
四、创建账号
(1)使用以下命令添加用户和设置密码,并且尝试连接。
1 2 | $ docker exec -it mongo mongo admin # 创建一个名为 admin,密码为 admin 的用户。docker exec -it mongo mongosh admin |
成功结果如下:
(2)创建用户
1 2 | admin> db.createUser({ user: 'admin' ,pwd: 'admin' ,roles:[ { role: 'userAdminAnyDatabase' , db: 'admin' }, "readWriteAnyDatabase" ]}); { ok: 1 } |
user:'
admin'
: 用户名pwd:'
admin'
: 密码{ role:'userAdminAnyDatabase', db: 'admin'}
:admin
数据库,赋予用户所有数据权限readWriteAnyDatabase
: 赋予用户读写权限
(3)对于已经创建用户,再次进入容器中,可以直接通过执行启动mongoShell ;
1 | mongo #mongoDB在默认的路径下直接使用的指令<br>mongo localhost 27017 # 不在默认路径下的执行 mongo --host mongodb_host --port mongodb_port |
(4)连接并测试
1 2 3 | # 尝试使用上面创建的用户信息进行连接。 admin> db.auth( 'admin' , 'admin' ) { ok: 1 } |
(5)测试
1 2 3 4 5 | admin> db.user.insertOne({ "name" : "AAAA" , "age" : 20 }); { acknowledged: true , insertedId: ObjectId( "65bb0bd014d263b58b6251b1" ) } |
(6)查询
1 2 3 4 5 | ## 查询 admin> db.user.find(); [ { _id: ObjectId( "65bb0bd014d263b58b6251b1" ), name: 'AAAA' , age: 20 } ] |
五、图形化工具客户端 MongoDB Compass
MongoDB Compass是MongoDB官方提供的一个图形化免费工具,它可以使用可视化的方式查询、聚合和分析MongoDB中的数据。MongoDB Compass可以运行在macOS、Windows和Linux操作系统上。MongoDB Compass的主界面。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下