1.安装docker和docker-compose

1.1 安装docker软件
yum install -y docker1.2 启动docker并将docker加入开机启动
systemctl start docker
systemctl enable docker1.3 查看docker版本
docker version1.4 安装docker-compose
安装epel源
yum install -y epel-release安装docker-compose
yum install -y docker-compose

2.登录官网查看mongodb的版本号:

MongoDB Community Download | MongoDBDownload the Community version of MongoDB's non-relational database server from MongoDB's download center.https://www.mongodb.com/try/download/community

3.下载mongodb到个人虚拟机

服务器无法访问外网,个人虚拟机才可以访问外网
docker pull mongo:5.0.5  或者 docker pull mongo:latest

[root@mongodb mongodb-5.0.5]# docker pull mongo:5.0.5
Trying to pull repository docker.io/library/mongo ...
5.0.5: Pulling from docker.io/library/mongo
Digest: sha256:517f98e5b796844475a985b78a3abbc72cbadd7497d0ee689cf8b8c9ad34f89e
Status: Downloaded newer image for docker.io/mongo:5.0.5
[root@mongodb mongodb-5.0.5]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/mongo     5.0.5               dfda7a2cf273        27 hours ago        693 MB
docker.io/mongo     latest              dfda7a2cf273        27 hours ago        693 MB
docker.io/mongo     3.6.23              2f21415cb85f        7 months ago        453 MB
[root@mongodb mongodb-5.0.5]# 

4.打包镜像

docker save docker.io/mongo:3.6.23 > /root/mongo3.6.23.tar
docker save docker.io/mongo:5.0.5 > /root/mongo5.0.5.tar

将mongo5.0.5.tar文件从下载到本地,并上传到服务器

5.导入镜像:

在你的新的 Docker 实例中运行 docker load命令,并且指定 tar 镜像文件的位置。

docker load < /root/mongo5.0.5.tar

[root@localhost ~]# docker load < mongo5.0.5.tar
9f54eef41275: Loading layer [==================================================>]  75.16MB/75.16MB
bfd77925f372: Loading layer [==================================================>]  338.4kB/338.4kB
b40b95ac3b69: Loading layer [==================================================>]  8.101MB/8.101MB
a137db1bf3f7: Loading layer [==================================================>]  15.43MB/15.43MB
0bca50f254cc: Loading layer [==================================================>]  2.048kB/2.048kB
efa3c98556d0: Loading layer [==================================================>]   5.12kB/5.12kB
eee3d55617fe: Loading layer [==================================================>]  3.584kB/3.584kB
5985099e565b: Loading layer [==================================================>]  598.1MB/598.1MB
f322ccf1f01a: Loading layer [==================================================>]  3.072kB/3.072kB
ec74e72b7dfb: Loading layer [==================================================>]  17.41kB/17.41kB
Loaded image: mongo:5.0.5
[root@localhost ~]# [root@localhost ~]# docker images|grep mongo
mongo                                         5.0.5               dfda7a2cf273        28 hours ago        693MB
[root@localhost ~]# 

6、修改镜像tag(如需)

$ docker tag [镜像ID]  [镜像名称]:[镜像标签]

7、安装mongodb

7.1 在宿主机上创建mongodb存放目录,用来做持久化。

mkdir -p /opt/aspire/product/docker-containers/mongodb-5.0.5
cd /opt/aspire/product/docker-containers/mongodb-5.0.5
mkdir db conf logs configdb

7.2、创建、编写配置文件mongod.conf

dbPath、path不建议改动,bindIp改为0.0.0.0以方便外部连接MongoDB

参考:

[root@mongodb conf]# cat mongod.conf
storage:dbPath: /var/lib/mongodbjournal:enabled: true
# engine:
# wiredTiger:systemLog:destination: filelogAppend: truepath: /var/log/mongodb/mongod.lognet:bindIp: 0.0.0.0port: 27017processManagement:timeZoneInfo: /usr/share/zoneinfo
[root@mongodb conf]# 

7.3、上传mongod.conf

上传 / 复制 / 创建 到:/opt/aspire/product/docker-containers/mongodb-5.0.5/conf/
该路径由自己决定,即数据卷目录由自己决定,只要成功挂载并能启动MongoDB即可
(该路径与下方的创建容器并挂载目录一致)

7.4、创建容器并挂载目录

很多新手会面临1个问题:如何选择挂载目录?不知道选择哪个数据卷目录、容器目录来挂载;
下方的docker run的-v中,":"左边为数据卷目录,右边为挂载目录

docker run --name mongodb \
-p 27017:27017 \
-v /opt/aspire/product/docker-containers/mongodb-5.0.5/db:/data/db \
-v /opt/aspire/product/docker-containers/mongodb-5.0.5/conf/mongod.conf:/etc/mongod.conf.orig \
-v /opt/aspire/product/docker-containers/mongodb-5.0.5/logs:/var/log/mongodb \
-v /opt/aspire/product/docker-containers/mongodb-5.0.5/configdb:/data/configdb \
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=<密码> \
--privileged=true \
--restart=always \
-d mongo:5.0.5

7.5 登录数据库,验证密码,查看数据库

[root@localhost conf]# docker ps |grep mongo
bcba97cdcae8        mongo:5.0.5                                          "docker-entrypoint.s…"   21 seconds ago      Up 20 seconds       0.0.0.0:27017->27017/tcp   mongodb
[root@localhost conf]#
[root@localhost conf]# docker exec -it mongodb /bin/bash
root@bcba97cdcae8:/#
root@bcba97cdcae8:/#
root@bcba97cdcae8:/# mongo
MongoDB shell version v5.0.5
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("7fb10250-bf10-43b9-b7fd-111746941b67") }
MongoDB server version: 5.0.5
================
Warning: the "mongo" shell has been superseded by "mongosh",
which delivers improved usability and compatibility.The "mongo" shell has been deprecated and will be removed in
an upcoming release.
For installation instructions, see
https://docs.mongodb.com/mongodb-shell/install/
================
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, seehttps://docs.mongodb.com/
Questions? Try the MongoDB Developer Community Forumshttps://community.mongodb.com
> db.version();
5.0.5
> use admin;
switched to db admin
> db.auth("root","<密码>");
1
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
>

7.6 创建数据库、创建集合

1. 创建数据库qyqdb
use qyqdb
(注:这里还并没有在本地创建该数据库,需要在该数据库添加集合(表)之后才算真正创建了)2. 创建user集合(表),也是插入数据
db.user.insert({"name":"小一",age:18})
db.user.insert({"name":"小二",age:19})
db.user.insert({"name":"张三",age:20})
db.user.insert({"name":"赵四",age:21})
db.user.insert({"name":"王老五",age:22})
db.user.insert({"name":"李老六",age:23})
db.user.insert({"name":"阮小七",age:24})
db.user.insert({"name":"郑八哥",age:25})注意:mongodb的数据和json数据一样,格式要正确3.查看创建的数据库
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
qyqdb   0.000GB4.显示当前数据集合show collections
> show collections
user

7.7 条件查询

--条件查询,查询age=18的数据
> db.user.find({"age": 18})
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039662"), "name" : "小一", "age" : 18 }--条件查询,查询age>24的数据$gt
> db.user.find({"age": {$gt: 24}})
{ "_id" : ObjectId("61b1bb205b33d3cc45039669"), "name" : "郑八哥", "age" : 25 }--条件查询,查询age>=24的数据$gte
> db.user.find({"age": {$gte: 24}})
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039668"), "name" : "阮小七", "age" : 24 }
{ "_id" : ObjectId("61b1bb205b33d3cc45039669"), "name" : "郑八哥", "age" : 25 }--条件查询,查询age<20的数据$lt
> db.user.find({"age": {$lt: 20}})
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039662"), "name" : "小一", "age" : 18 }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039663"), "name" : "小二", "age" : 19 }--条件查询,查询age<=20的数据$lte
> db.user.find({"age": {$lte: 20}})
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039662"), "name" : "小一", "age" : 18 }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039663"), "name" : "小二", "age" : 19 }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039664"), "name" : "张三", "age" : 20 }--模糊查询,查询name包含‘老’字的数据/老/
> db.user.find({"name": /老/})
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039666"), "name" : "王老五", "age" : 22 }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039667"), "name" : "李老六", "age" : 23 }--模糊查询,查询name以‘李’字开头的数据/^李/
> db.user.find({"name": /^李/})
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039667"), "name" : "李老六", "age" : 23 }--模糊查询name以‘七’结尾的数据/七$/
> db.user.find({"name": /七$/})
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039668"), "name" : "阮小七", "age" : 24 }--查询指定列(字段)的数据,如name,age
下面只查询name的字段, 注意:要查询那个字段就写该字段=1,比如{name: 1},如果只查询age字段就{age: 1},_id是自带的。
> db.user.find({},{name: 1})
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039662"), "name" : "小一" }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039663"), "name" : "小二" }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039664"), "name" : "张三" }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039665"), "name" : "赵四" }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039666"), "name" : "王老五" }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039667"), "name" : "李老六" }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039668"), "name" : "阮小七" }
{ "_id" : ObjectId("61b1bb205b33d3cc45039669"), "name" : "郑八哥" }--排序查询sort,升序:1,降序:-1
--升序
> db.user.find().sort({age: 1})
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039662"), "name" : "小一", "age" : 18 }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039663"), "name" : "小二", "age" : 19 }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039664"), "name" : "张三", "age" : 20 }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039665"), "name" : "赵四", "age" : 21 }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039666"), "name" : "王老五", "age" : 22 }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039667"), "name" : "李老六", "age" : 23 }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039668"), "name" : "阮小七", "age" : 24 }
{ "_id" : ObjectId("61b1bb205b33d3cc45039669"), "name" : "郑八哥", "age" : 25 }--降序
> db.user.find().sort({age: -1})
{ "_id" : ObjectId("61b1bb205b33d3cc45039669"), "name" : "郑八哥", "age" : 25 }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039668"), "name" : "阮小七", "age" : 24 }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039667"), "name" : "李老六", "age" : 23 }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039666"), "name" : "王老五", "age" : 22 }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039665"), "name" : "赵四", "age" : 21 }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039664"), "name" : "张三", "age" : 20 }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039663"), "name" : "小二", "age" : 19 }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039662"), "name" : "小一", "age" : 18 }--查询前2条数据limit
> db.user.find().limit(2)
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039662"), "name" : "小一", "age" : 18 }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039663"), "name" : "小二", "age" : 19 }--查询第4条(不包含第4条)之后的数据skip
注意: 计数从0开始
> db.user.find().skip(4)
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039666"), "name" : "王老五", "age" : 22 }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039667"), "name" : "李老六", "age" : 23 }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039668"), "name" : "阮小七", "age" : 24 }
{ "_id" : ObjectId("61b1bb205b33d3cc45039669"), "name" : "郑八哥", "age" : 25 }--到这里可以结合limit实现分页查询,比如查询第4条到第6条数据(实际5,6两条)
> db.user.find().skip(4).limit(2)
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039666"), "name" : "王老五", "age" : 22 }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039667"), "name" : "李老六", "age" : 23 }--or 和 查询 $or
查询age=20或者age=22的数据
> db.user.find({$or: [{"age": 20},{"age": 22}]})
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039664"), "name" : "张三", "age" : 20 }
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039666"), "name" : "王老五", "age" : 22 }--查询第一条数据findOne
> db.user.findOne()
{ "_id" : ObjectId("61b1bb1f5b33d3cc45039662"), "name" : "小一", "age" : 18 }查询数据数量(长度)count
> db.user.find().count()
8

7.8 创建用户、查看用户

查看用户:
> use admin
switched to db admin
> db.getUsers();
[{"_id" : "admin.root","userId" : UUID("6e351088-725c-4058-9b5f-e5fa6148be61"),"user" : "root","db" : "admin","roles" : [{"role" : "root","db" : "admin"}],"mechanisms" : ["SCRAM-SHA-1","SCRAM-SHA-256"]}
]
> --创建角色
> db.createRole({role:"r_dbmon",privileges:[
... {resource:{db:"",collection:"system.indexes"},actions:["find"]},
... {resource:{db:"",collection:"system.namespaces"},actions:["find"]},
... {resource:{db:"",collection:"system.js"},actions:["find"]},
... {resource:{db:"admin",collection:""},actions:["changeOwnPassword"]}],
... roles:[{role:"clusterMonitor",db:"admin"},
... {role:"readAnyDatabase",db:"admin"}]
... });
{"role" : "r_dbmon","privileges" : [{"resource" : {"db" : "","collection" : "system.indexes"},"actions" : ["find"]},{"resource" : {"db" : "","collection" : "system.namespaces"},"actions" : ["find"]},{"resource" : {"db" : "","collection" : "system.js"},"actions" : ["find"]},{"resource" : {"db" : "admin","collection" : ""},"actions" : ["changeOwnPassword"]}],"roles" : [{"role" : "clusterMonitor","db" : "admin"},{"role" : "readAnyDatabase","db" : "admin"}]
}--创建用户并授权访问admin
> db.createUser({user:"dbmon",pwd:"<密码>",roles:[{role:"r_dbmon",db:"admin"}]})
Successfully added user: {"user" : "dbmon","roles" : [{"role" : "r_dbmon","db" : "admin"}]
}--查看用户
> db.getUsers();
[{"_id" : "admin.dbmon","userId" : UUID("e1a69658-641a-4b82-98b5-1965bcc2b196"),"user" : "dbmon","db" : "admin","roles" : [{"role" : "r_dbmon","db" : "admin"}],"mechanisms" : ["SCRAM-SHA-1","SCRAM-SHA-256"]},{"_id" : "admin.root","userId" : UUID("6e351088-725c-4058-9b5f-e5fa6148be61"),"user" : "root","db" : "admin","roles" : [{"role" : "root","db" : "admin"}],"mechanisms" : ["SCRAM-SHA-1","SCRAM-SHA-256"]}
]
> 

参考:mongodb创建数据库,创建集合(表),实现增删改查_YanGo的博客-CSDN博客_mongodb创建数据集mac上安装mongodb传送门目录首先在终端上,我们先执行`mongo`来启动运行mongodb一. 查看所有数据库二. 创建数据库yango_db三. 创建user集合(表),也是插入数据四. 显示当前数据集合五. 删除当前集合六. 删除数据库七. 查询数据1. 查询user集合所有数据2. 条件查询,查询age=18的数据3. 条件查询,查询age>24的数据`$gt`4. 条件查询,查询age>=24的数据`$gte`5. 条件查询,查询age<20的数据`$lt`6. 条件查https://blog.csdn.net/weixin_39644462/article/details/112449109

使用docker下载并安装mongodb5.0.5相关推荐

  1. Android Studio下载及安装3.0版本

    今天,继续简单讲讲Android studio3.0如何安装. 之前写过Android studio的安装,那个是Android 2.2.3版本,这次由于导入3.0项目,所以重新安装了Android ...

  2. Docker下载与安装(win7,8,10,mac)

    文章目录 一.Docker安装 1. win10专业版/教育版 2. win7,8,10家庭版 3. Mac 二.启动docker 1. Windows 2. Mac 三.Docker配置参考网站 一 ...

  3. wxpython4下载_Linux 安装 wxPython4.0.4

    Ubuntu 18.04 安装 wxPython4.0.4 因为 wxPython4.x 不提供 Linux 下的 bin 文件安装,以下记录 Ubuntu 18.04 的安装过程 (Ubuntu 1 ...

  4. docker下载与安装

    打开docker官网https://www.docker.com/ 我们安装的示范 是window64 现在下载 docker-toolbox https://www.docker.com/produ ...

  5. Docker下载、安装、卸载

    一.去哪下? 1.Docker官网 https://www.docker.com/ 2.Docker Hub官网 https://hub.docker.com/ 二.安装要求 CentOS Docke ...

  6. docker下载后安装失败:This computer doesn’t have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory.

    进入BIOS后发现,电脑已开启虚拟化. 运行 docker quickstart terminal 仍然是相同的报错,Kitematic也无法运行(报错相同) 打开bash,运行 docker-mac ...

  7. 【SpringBoot + Docker】编写Dockerfile安装jdk11.0.3,并部署SpringBoot项目

    Docker 采用 Dockerfile 安装 jdk11.0.3 并部署SpringBoot项目实例 1.去Oracle官网提前下载好所需的 jdk,linux版本 各个版本jdk下载 - Orac ...

  8. 【QT】QT下载与安装

    很简单 1.下载地址 http://download.qt.io/archive/qt/ 学个单词,archive. 选择一个版本下载,5.9.3. 2.安装 选择组件 MinGW就行了,MinGW- ...

  9. win10_64位+GTX1070max-q安装CUDA10.0.130+CUDNN7.4.2+Anaconda3.5.2+Tensorflow-gpu2.0.0+PyTorch-gpu1.2.0

    文章目录 安装特定版本NVIDIA显卡驱动 下载和安装CUDA10.0.130 下载和安装CUDNN7.4.2 下载和安装Anaconda3.5.2 安装Tensorflow-gpu2.0.0和pyt ...

最新文章

  1. 十五个步骤收获学习的习惯
  2. 基于SSH框架实际开发时遇到的问题及解决办法
  3. java管理从程序员到CTO的Java技术路线图
  4. windows 7 网卡物理地址修改方法
  5. Angular:why click add button does not work for the second time
  6. mysql kafka binlog_为什么使用kafka处理mysql binlog?
  7. 转:flex [Inspectable]标签详解
  8. 11款样式新颖的 jQuery/CSS3 网页菜单
  9. 工具的使用 —— sublime
  10. ASP.NET MVC+EF框架+EasyUI实现权限管理系列
  11. 软件使用,Microsoft Visual C++运行库合集包
  12. 唐宇迪数据分析学习笔记
  13. Oracle大神资料索引
  14. STM32F429+W25Q256+TouchFGX
  15. 数值分析笔记 第一章 数值分析与科学计算引论
  16. 1.1 电 电流 电压 电路 基本电子元件
  17. 使用uib-tab时,获取页面输入框内容
  18. IT项目经理面试题分解
  19. html格式蠕虫病毒,蠕虫病毒Win32.Womble.B
  20. 容器学习笔记之CPU Cgroup

热门文章

  1. java string补空格_Java String字符串补0或空格详解
  2. properties 配置回车_Dell?H730P?Raid1?配置方法
  3. 正在此计算机上搜索更新,安装用友T3卡在最后一步windows update这里提示正在此计算机上搜索更新没有反应...
  4. java mqtt丢包_MQTT 3.1协议非严肃反思录
  5. 中判断字符串是否为空_自己动手编写VBA代码,判断一个工作表是否为空,然后删除它...
  6. Linux 5.10 LTS 发布,支持到 2026 年
  7. 微软正式推出 gRPC-Web for .NET
  8. 如何使您的HttpClient安全?
  9. 如何在ASP.NET Core中上传文档
  10. Windows Phone 8.1 应用商店将于 12 月 16 日关闭