本文将介绍如何在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,如下图:

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

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

Docker入门(二)在docker使用MongoDB的更多相关文章

  1. SpringBoot Docker入门,SpringBoot Docker安装

    SpringBoot Docker入门,SpringBoot Docker安装 ================================ ©Copyright 蕃薯耀 2018年4月8日 ht ...

  2. docker入门(二)容器与镜像的理解

    10张图带你深入理解Docker容器和镜像 申明:此篇文章是转载的(原文地址http://dockone.io/article/783),今天意外发现已经有人转载了(复制了),希望大家关注原创 原本打 ...

  3. docker入门(二)容器与镜像的关系

    [编者的话]本文用图文并茂的方式介绍了容器.镜像的区别和Docker每个命令后面的技术细节,能够很好的帮助读者深入理解Docker. 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(co ...

  4. docker入门 基础命令 docker安装

    docker入门   在学一门新知识的时候,超哥喜欢提问,why?what?how? wiki资料 什么是docker Docker 最初是 dotCloud 公司创始人 Solomon Hykes ...

  5. 【docker 入门 - 01】- Docker 在 Centos7 上安装与测试

    一.学习文档 官网网站: https://www.docker.com 中文网站:http://www.docker-cn.com 官方安装文档:https://docs.docker.com/ins ...

  6. Docker入门之安装Docker

    目录 目录 1 1. 前言 1 2. 创建网桥 2 3. 安装Docker 2 3.1. 二进制安装 3 3.1.1. 下载安装 3 3.1.2. 配置服务 3 3.1.3. 启动服务 4 3.2. ...

  7. docker入门一:docker安装(在线跟离线)

    一.在线安装 1.安装依赖 yum install -y yum-utils device-mapper-persistent-data lvm2 2.添加软件源 yum-config-manager ...

  8. Docker系列二:Docker的基本结构

    Docker的基本结构 Docker 的三大基础组件 Docker有三个重要的概念:仓库 , 镜像 和 容器 ,它们是Docker的三大基出组件 Docker的组织结构 Docker处于操作系统和虚拟 ...

  9. Docker入门 - 001 CentOS Docker 安装

    Docker支持以下的CentOS版本: CentOS 7 (64-bit) CentOS 6.5 (64-bit) 或更高的版本 前提条件 目前,CentOS 仅发行版本中的内核支持 Docker. ...

  10. docker入门 什么是docker? 为什么使用docker?

    1.什么是docker? 轻量级操作系统虚拟化解决方案 2.为什么使用docker? 1.docker的启动是秒级的,比传统虚拟机快很多 2.资源利用率高,一台主机上可同时运行数千个docker容器 ...

随机推荐

  1. ko数组

    数组属性监控 如果你想发现并响应一个对象的改变,就应该用监控属性(observables).如果你想发现并响应一个集合的变化,就该用监控属性数组 (observableArray).监控属性数组在显示 ...

  2. 20175324 mycp

    具体描述: 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容 ...

  3. Nginx负载均衡的5种策略(转载)

    Nginx的upstream目前支持的5种方式的分配 轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. upstream backserver { s ...

  4. swust oj 1011

    二叉排序树的实现和查找 1000(ms) 10000(kb) 2782 / 6301 按照给定的关键字集合,建立二叉排序树.在建立的二叉排序树上查找指定的关键字,查找成功,输出找到该关键字比较的次数: ...

  5. Springboot 集成jpa使用

    实体类 dao层 上面的查询 ,方法名友好命名的话,可以不写注解查询  findByXXXX MetadataSchemePO findBySchemeName(String schemeName); ...

  6. 官方JwPlayer去水印步骤

    在前端播放视频,现在用html5的video标签已经是一个不错的选择,不过有时候还是需要用StrobeMediaPlayback.JWPlayer这一类的flash播放器,JWPlayer的免费版本带 ...

  7. Python必学Django框架,入门到精通学习视频教程全都在这可以领

    “人生苦短,我用python”,学python的小伙伴应该都了解这句话的含义.但是,学python,你真正了了解强大的Django框架吗!? 据说Django还是由吉普赛的一个吉他手的名字命名的呢,有 ...

  8. PHP全栈从入门到精通1

    thinkphp框架,是一堆代码(常量,方法,和类)的集合,框架是一个半成品的应用,还包含一些优秀的设计模式. 框架的使用,代码风格不一样,维护难,项目生命周期短,功能扩展存在局限,好处为,简单,快捷 ...

  9. [Swift]LeetCode32. 最长有效括号 | Longest Valid Parentheses

    Given a string containing just the characters '(' and ')', find the length of the longest valid (wel ...

  10. [Swift]LeetCode249.群组偏移字符串 $ Group Shifted Strings

    Given a string, we can "shift" each of its letter to its successive letter, for example: & ...