博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker入门(二)在docker使用MongoDB
阅读量:5894 次
发布时间:2019-06-19

本文共 5925 字,大约阅读时间需要 19 分钟。

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

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

docker search mongodb

输出的结果如下:

NAME                                         DESCRIPTION                                     STARS               OFFICIAL            AUTOMATEDmongo                                        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             SIZEmongo               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                      NAMES9664a5056e78        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的基础操作,具体的入门教程可以参考: 。

  显示数据库:

> show dbsadmin   0.000GBconfig  0.000GBlocal   0.000GB

  创建新数据库及集合:

> use schoolswitched to db school> db.createCollection('teacher'){ "ok" : 1 }> show dbsadmin   0.000GBconfig  0.000GBlocal   0.000GBschool  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,如下图:

27000端口

  本次介绍完毕,感谢大家阅读~

注意:本人现已开通微信公众号: Python爬虫与算法(微信号为:easy_web_scrape), 欢迎大家关注哦~~

转载地址:http://kvisx.baihongyu.com/

你可能感兴趣的文章
occActiveX - ActiveX with OpenCASCADE
查看>>
BeanUtils\DBUtils
查看>>
[转]理解Linux文件系统之inode
查看>>
python模块--os模块
查看>>
linux下单节点oracle数据库间ogg搭建
查看>>
swift三方库
查看>>
Java 数组在内存中的结构
查看>>
《关爱码农成长计划》第一期报告
查看>>
学习进度表 04
查看>>
谈谈javascript中的prototype与继承
查看>>
时序约束优先级_Vivado工程经验与各种时序约束技巧分享
查看>>
minio 并发数_MinIO 参数解析与限制
查看>>
mysql半同步和无损复制_MySQL半同步复制你可能没有注意的点
查看>>
python编译exe用于别的电脑上_Python安装教程(推荐一款不错的Python编辑器)
查看>>
flash back mysql_mysqlbinlog flashback 使用最佳实践
查看>>
mysql书外键_[转] mysql 外键(Foreign Key)的详解和实例
查看>>
mysql存储引擎模式_MySQL存储引擎
查看>>
python类 del_全面了解Python类的内置方法
查看>>
java jni 原理_使用JNI技术实现Java和C++的交互
查看>>
java 重写system.out_重写System.out.println(String x)方法
查看>>