docker怎么使用mongodb[mongodb教程]

python

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

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

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

docker search mongodb

输出的结果如下:

NAME                             DESCRIPTION                             STARS       OFFICIAL

AUTOMATED

mongo                       MongoDB document databases provide high avai…    5606        [OK]

mongo-express                  Web-based MongoDB admin interface, written w…   386         [OK]

tutum/mongodb                  MongoDB Docker image – listens in port 27017…   224         [OK]

bitnami/mongodb                 Bitnami MongoDB Docker Image                83         [OK]

percona/percona-server-mongodb       Percona Server for MongoDB docker images        23

frodenas/mongodb                A Docker Image for MongoDB                 17         [OK]

centos/mongodb-32-centos7          MongoDB NoSQL database server                5

centos/mongodb-26-centos7          MongoDB NoSQL database server                5

eses/mongodb_exporter             mongodb exporter for prometheus               4         [OK]

centos/mongodb-36-centos7          MongoDB NoSQL database server                4

quadstingray/mongodb             MongoDB with Memory and User Settings           3         [OK]

bigtruedata/php-mongodb           PHP image with MongoDB support                2         [OK]

neowaylabs/mongodb-mms-agent        This Docker image with MongoDB Monitoring Ag…     2         [OK]

tozd/mongodb                   Base image for MongoDB server.               2         [OK]

nuxeoapbcatalog/nuxeo-mongodb-apb     MongoDB deployment for Nuxeo                 1         [OK]

openshift/mongodb-24-centos7        DEPRECATED: A Centos7 based MongoDB v2.4 ima…     1

centos/mongodb-34-centos7          MongoDB NoSQL database server                1

webhippie/mongodb               Docker images for mongodb                   1         [OK]

perconalab/percona-server-mongodb-operator  MOVED TO https://hub.docker.com/r/perconalab… 1

phenompeople/mongodb             MongoDB is an open-source, document databas…      0         [OK]

gebele/mongodb                 mongodb                               0         [OK]

mongodbsap/mongodbdocker                                              0

targetprocess/mongodb_exporter       MongoDB exporter for prometheus               0         [OK]

ansibleplaybookbundle/mongodb-apb     An APB to deploy MongoDB.                   0         [OK]

xogroup/mongodb_backup_gdrive       Docker image to create a MongoDB database ba…     0         [OK]

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

docker pull mongo

查看该镜像的信息:

docker images mongo

输出的结果如下:

REPOSITORY     TAG         IMAGE ID      CREATED     SIZE

mongo        latest      0da05d84b1fe    2 weeks ago    394MB

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

docker run -p 27000:27017 -v $PWD/db:/data/db -d mongo:latest

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

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

docker ps

输出如下:

CONTAINER ID  IMAGE      COMMAND            CREATED     STATUS     PORTS           NAMES

9664a5056e78  mongo:latest "docker-entrypoint.s…" 3 seconds ago Up 2 seconds 0.0.0.0:27017->27017/tcp

nervous_heyrovsky

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

docker exec -it 9664a5056e78 bash

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

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

显示数据库:

> show dbs

admin   0.000GB

config   0.000GB

local   0.000GB

创建新数据库及集合:

> use school

switched to db school

> db.createCollection('teacher')

{ "ok" : 1 }

> show dbs

admin   0.000GB

config  0.000GB

local   0.000GB

school  0.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,如下图:

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

以上是 docker怎么使用mongodb[mongodb教程] 的全部内容, 来源链接: utcz.com/z/526216.html

回到顶部