mongoDB学习之--docker安装mongoDB

一、环境准备:

操作系统:centos9 stream:5.14.0-522.el9.x86_64

docker版本:27.3.1

由于最近镜像加速器也被禁的很厉害,很多要么申请白名单,要么得像阿里一样申请二级域名;

可惜配置了申请的阿里域名依然还是连不上docker hub, 

{
    "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}

报错: 

 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镜像

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)创建容器:

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版本

docker exec -it mongodb /bin/bash  --进入容器
mongod -version --查看版本

 四、创建账号

(1)使用以下命令添加用户和设置密码,并且尝试连接。

$ docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 admin 的用户。
docker exec -it mongo mongosh admin
#mongoDB 6.0以上版本用这个指令

成功结果如下:

 (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 ;  

mongo #mongoDB在默认的路径下直接使用的指令
mongo localhost 27017 # 不在默认路径下的执行 mongo --host mongodb_host --port mongodb_port

(4)连接并测试

# 尝试使用上面创建的用户信息进行连接。
admin> db.auth('admin', 'admin')
{ ok: 1 }

(5)测试

admin> db.user.insertOne({"name":"AAAA","age":20});
{
  acknowledged: true,
  insertedId: ObjectId("65bb0bd014d263b58b6251b1")
}

(6)查询 

## 查询
admin> db.user.find();
[
  { _id: ObjectId("65bb0bd014d263b58b6251b1"), name: 'AAAA', age: 20 }
]

五、图形化工具客户端 MongoDB Compass

    MongoDB Compass是MongoDB官方提供的一个图形化免费工具,它可以使用可视化的方式查询、聚合和分析MongoDB中的数据。MongoDB Compass可以运行在macOS、Windows和Linux操作系统上。MongoDB Compass的主界面。

 

posted @ 2024-10-23 11:11  sucre_tan  阅读(25)  评论(0编辑  收藏  举报