当前位置:首页 > 云计算 > 正文内容

docker怎么使用mongodb

2022-05-04 03:12:38云计算1

本文将介绍如何在docker中使用MongoDB。

如果你是一名MongoDB的初学者,那么你入门MongoDB的第一件事就是安装MongoDB,但是安装MongoDB又不是一件简单的事情,还需要自己配置一些服务。这时候,docker就能帮上大忙,它能够让你不需要本地安装MongoDB就能使用MongoDB。下面让我们来看看这是怎么实现的。

首先你的电脑上需要安装docker,然后在docker的镜像中查询MongoDB的镜像,命令如下:

dockersearchmongodb

输出的结果如下:

NAMEDESCRIPTIONSTARSOFFICIAL
AUTOMATED
mongoMongoDBdocumentdatabasesprovidehighavai…5606[OK]
mongo-expressWeb-basedMongoDBadmininterface,writtenw…386[OK]
tutum/mongodbMongoDBDockerimage–listensinport27017…224[OK]
bitnami/mongodbBitnamiMongoDBDockerImage83[OK]
percona/percona-server-mongodbPerconaServerforMongoDBdockerimages23
frodenas/mongodbADockerImageforMongoDB17[OK]
centos/mongodb-32-centos7MongoDBNoSQLdatabaseserver5
centos/mongodb-26-centos7MongoDBNoSQLdatabaseserver5
eses/mongodb_exportermongodbexporterforprometheus4[OK]
centos/mongodb-36-centos7MongoDBNoSQLdatabaseserver4
quadstingray/mongodbMongoDBwithMemoryandUserSettings3[OK]
bigtruedata/php-mongodbPHPimagewithMongoDBsupport2[OK]
neowaylabs/mongodb-mms-agentThisDockerimagewithMongoDBMonitoringAg…2[OK]
tozd/mongodbBaseimageforMongoDBserver.2[OK]
nuxeoapbcatalog/nuxeo-mongodb-apbMongoDBdeploymentforNuxeo1[OK]
openshift/mongodb-24-centos7DEPRECATED:ACentos7basedMongoDBv2.4ima…1
centos/mongodb-34-centos7MongoDBNoSQLdatabaseserver1
webhippie/mongodbDockerimagesformongodb1[OK]
perconalab/percona-server-mongodb-operatorMOVEDTOhttps://hub.docker.com/r/perconalab…1
phenompeople/mongodbMongoDBisanopen-source,documentdatabas…0[OK]
gebele/mongodbmongodb0[OK]
mongodbsap/mongodbdocker0
targetprocess/mongodb_exporterMongoDBexporterforprometheus0[OK]
ansibleplaybookbundle/mongodb-apbAnAPBtodeployMongoDB.0[OK]
xogroup/mongodb_backup_gdriveDockerimagetocreateaMongoDBdatabaseba…0[OK]

我们在这些镜像中选择使用第一个镜像,即mongo, 拉取mongo镜像,命令如下:

dockerpullmongo

查看该镜像的信息:

dockerimagesmongo

输出的结果如下:

REPOSITORYTAGIMAGEIDCREATEDSIZE
mongolatest0da05d84b1fe2weeksago394MB

现在,在docker中已经存在MongoDB的镜像mongo,接下来我们将使用这个镜像。输入命令:

dockerrun-p27000:27017-v$PWD/db:/data/db-dmongo:latest

其中, -p 参数为端口映射,格式为:主机(宿主)端口:容器端口,-v参数为数据卷挂载,将主机的目录$PWD/db 映射到容器的/data/db,这是为了存储MongoDB操作时的数据,-d参数表示后台运行。

接着输入以下命令查询正在运行的docker容器:

dockerps

输出如下:

CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
9664a5056e78mongo:latest"docker-entrypoint.s…"3secondsagoUp2seconds0.0.0.0:27017->27017/tcp
nervous_heyrovsky

接着运行以下命令,即可使用docker中的虚拟机,该虚拟机已帮你安装好MongoDB,可以直接使用:

dockerexec-it9664a5056e78bash

在虚拟机中输入mongo ,界面如下:

332a9296ea73a2bf79f5c254b494063.png

以下将展示一些MongoDB的基础操作,具体的入门教程可以参考:https://blog.csdn.net/jclian91/article/details/78654274 。

显示数据库:

>showdbs
admin0.000GB
config0.000GB
local0.000GB

创建新数据库及集合:

>useschool
switchedtodbschool
>db.createCollection('teacher')
{"ok":1}
>showdbs
admin0.000GB
config0.000GB
local0.000GB
school0.000GB

往集合中插入新文档:

>db.teacher.insert({id:1,name:'zhangshan',age:38})
WriteResult({"nInserted":1})
>db.teacher.insert({id:2,name:'lisi',age:47})
WriteResult({"nInserted":1})
>db.teacher.insert({id:3,name:'wangwu',age:26})
WriteResult({"nInserted":1})

查询文档:

>db.teacher.count()
3
>db.teacher.find()
{"_id":ObjectId("5c6d12d880b47c18564d99a7"),"id":1,"name":"zhangshan","age":38}
{"_id":ObjectId("5c6d12df80b47c18564d99a8"),"id":2,"name":"lisi","age":47}
{"_id":ObjectId("5c6d12e580b47c18564d99a9"),"id":3,"name":"wangwu","age":26}
>db.teacher.find({name:'lisi'})
{"_id":ObjectId("5c6d12df80b47c18564d99a8"),"id":2,"name":"lisi","age":47}

此时,在MongoDB的可视化软件Robo 3T中,依然能够看到我们插入的数据,只是连接的端口改为27000,如下图:

22b6bbfc05b6b89186c47b5129a0672.png

python学习网,大量的免费MongoDB入门教程,欢迎在线学习!

本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.

本文链接:https://www.xibujisuan.cn/9295.html

标签: Python