如何使用Docker安装一个MongoDB最新版_MongoDB

来源:脚本之家  责任编辑:小易  

Docker 提供了一个可以运行你的应用程序的封套(envelope),或者说容器。它原本是 dotCloud 启动的一个业余项目,并在前些时候开源了。它吸引了大量的关注和讨论,导致 dotCloud 把它重命名到 Docker Inc。它最初是用 Go 语言编写的,它就相当于是加在 LXC(LinuX Containers,linux 容器)上的管道,允许开发者在更高层次的概念上工作。Docker 扩展了 Linux 容器(Linux Containers),或着说 LXC,通过一个高层次的 API 为进程单独提供了一个轻量级的虚拟环境。Docker 利用了 LXC,cgroups 和 Linux 自己的内核。和传统的虚拟机不同的是,一个 Docker 容器并不包含一个单独的操作系统,而是基于已有的基础设施中操作系统提供的功能来运行的。这里有一个 Stackoverflow 的答案,里面非常详细清晰地描述了所有 Docker 不同于纯粹的 LXC 的功能特性Docker 会像一个可移植的容器引擎那样工作。它把应用程序及所有程序的依赖环境打包到一个虚拟容器中,这个虚拟容器可以运行在任何一种 Linux 服务器上。这大大地提高了程序运行的灵活性和可移植性,无论需不需要许可、是在公共云还是私密云、是不是裸机环境等等。Docker 由下面这些组成:1.Docker 服务器守护程序(server daemon),用于管理所有的容器。2.Docker 命令行客户端,用于控制服务器守护程序。3.Docker 镜像:查找和浏览 docker 容器镜像www.zgxue.com防采集请勿采集本网。

1 安装

本文假设大家已经安装好了docker并能正常使用,所以不讲解如何安装docker了。用docker安装MongoDB最新版本如下:

需要安装Aria2 Web 控制台。进入控制台后右边小扳手设一下IP就OK了。

# 从repository查找mongo的相关镜像,结果很多,其中第一条为官方的镜像$ docker search mongo# 下载官方镜像的最新版本$ docker pull mongo:latest# 完成后,检查是否下载成功$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEcentos 7 5e35e350aded 12 days ago 203MBmongo latest 965553e202a4 3 weeks ago 363MBhello-world latest fce289e99eb9 10 months ago 1.84kB

docker只支持linux内核3.x的操作系统,一定要确保内核为3.x,如果不是请升级内核或者更换操作系统版本 使用docker search+镜像名称 搜索镜像,然后用docker pull+镜像名称 命令下载镜像到本地

仅需要简单几个命令,我们就拥有了MongoDB的最新镜像了,后续就可以使用了。

1、修改yum源,指定Docker官方的yum源;2、使用 yum install docker-enginer 安装Docker,在安装过程中,很容易出现mirror下载速度太低,导致安装失败,只能多运行几次了。3、安装成功后,需要

2 启动

完成MongoDB的镜像下载后,启动就非常简单了,一个命令即可:

从util-linux版本2.23开始,nsenter工具就包含在其中。它用来访问另一个进程的名字空间。nsenter要正常工作需要有root权限。很不幸,Ubuntu 14.4仍然使用的是util-linux版本2.20。安装最新版本的util-

$ docker run -itd --name mongo -p 27017:27017 mongo --auth305ebd8236678905d16dd76e75dcf99fdd812be6b13c240acece7985d29b316c

(1)--name后面的参数为docker容器名;

(2)-p后面是端口映射,即宿主端口:容器端口

(3)--auth是否开始鉴权,如果不想开启可以去掉;

成功启动MongoDB一个实例后,会返回容器ID,如305ebd8236678905d16dd76e75dcf99fdd812be6b13c240acece7985d29b316c

通过命令docker ps可以查看正在运行的容器,经过检查,确实已经起来了。

注意:默认数据是存在容器系统的/data/db目录下的,如果需要使用自定义的宿主机器目录,可以在启动命令加上参数:

-v /my/own/datadir:/data/db

3 创建用户与集合

3.1 进入容器

容器起来后,下一步是进入容器:

# 进入容器可以用以下两种方法# 分别是通过容器名和容器ID$ docker exec -it mongo bash$ docker exec -it 305ebd823667 bash

上面进入容器后,其实是进入了容器的系统,并打开bash

3.2 通过客户端命令连接数据库

接着通过mongo命令连接到MongoDB的数据库服务。

# 默认连接本地的27017端口的MongoDB$ mongo# 指定IP与端口进行连接$ mongo 127.0.0.1:27017# 指定用户名和密码连接到指定的MongoDB数据库$ mongo 127.0.0.1:27017/admin -u user -p password

连接数据库成功后,会返回一些信息,如SeesionID和版本号等。

3.3 查看版本

(1)在linux命令通过mongo --version查询;

(2)连接上数据库后,通过db.version()查询。

root@305ebd823667:/# mongo --versionMongoDB shell version v4.2.1git version: edf6d45851c0b9ee15548f0f847df141764a317eOpenSSL version: OpenSSL 1.1.1 11 Sep 2018root@305ebd823667:/# mongo> db.version()4.2.1

3.4 创建admin管理用户

连上数据库后,我们先创建一个admin用户,用以管理其它用户:

> use adminswitched to db admin> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});Successfully added user: {"user" : "admin","roles" : [{"role" : "userAdminAnyDatabase","db" : "admin"}]}>

3.5 创建具有读写权限的用户

根据业务需求,创建不用的用户,如下面创建拥有读写权限的用户user:

> db.auth('admin','123456');1> db.createUser({ user:'user',pwd:'123456',roles:[ { role:'readWrite', db: 'testdb'}]});Successfully added user: {"user" : "user","roles" : [{"role" : "readWrite","db" : "testdb"}]}>

3.6 认证用户并操作

> db.auth('user','123456')1> use testdbswitched to db testdb> > db.person.insert({name:'Larry',age:18})WriteResult({ "nInserted" : 1 })> db.person.find({}){ "_id" : ObjectId("5ddaa14edbbac3c4f844366c"), "name" : "Larry", "age" : 18 }>

4 两款优秀的可视化工具

通过前面的操作,我们已经建立了用户,并尝试创建了数据库和集合。但通过命令行来操作总是不那么方便,我们需要可视化软件来进行操作。下面将介绍两款优秀的可视化软件,展示如何连接。如何进行CRUD等操作就不一一介绍了,还是比较友好的,容易使用。

4.1 Robo3T

官网

创建连接:

注意下面填的是鉴权数据库,而不是用户的数据库:

操作界面:

4.2 IDEA Mongo Plugin

GitHub官网

这个是支持JetBrains全系列软件的插件,IDEA当然也可以安装。

连接设置:

注意下面的User Database是该用户下的数据库,写错了会连不上。

注意下面Auth Database为鉴权的数据库,默认为admin。

操作界面:

总结

本文介绍了通过Docker安装最新版的MongoDB,并通过例子演示了如何运行和创建用户与集合,最后还介绍了两款非常友好的可视化工具,希望能带没有接触过的人入个门吧。

1.利用image运行一个containersudo docker run-it-net=host tingtingnet=host:让container可以上网,安装原来的sudo docker run-it tingting方法安装是不能联网的,不知道为什么,加入了-net=host后,container就可以联网了,但不知道还有其他更好的办法不,暂且使用这个方法tingting:是image的名字2.在container内安装jupyter notebookpip install jupyter notebookjupyter notebook是jupyter的名字3.commit新的镜像sudo docker commit-change='CMD jupyter notebook' serene_carson tingtingNewserene_carson:正在运行的container的名字tingtingNew:想要保存的新的image的名字4.利用新的image生成新的containersudo docker run-it-net=host -v /home/tingting/Dropbox/code/craterDetection/docker:/root/workspace tingtingNew注:这里利用-v命令将本地的文件夹与docker中的文件夹关联,其中,/home/tingting/Dropbox/code/craterDetection/docker:为本地文件夹;root/workspace:为docker中的文件夹;该命令可以将/home/tingting/Dropbox/code/craterDetection/docker文件夹映射到/root/workspace文件夹tingtingNew为刚刚安装了jupyter notebook的image5.打开jupyter,利用浏览器输入网址:localhost:8888注:不知道为什么,本机安装的jupyter地址没法获取,所以这里使用了localhost如何获取localhost的地址?打开一个新的terminal,查看container的地址:sudo docker inspect clever_bohr|grep IPAddress这里的clever_bohr为该正在运行的container的名字内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • springboot整合mongodb的docker开发教程全解
  • docker容器化部署尝试——多容器通信(node+mongodb+nginx)
  • docker中使用mongodb数据库详解(在局域网访问)
  • 基于docker的mongodb实现授权访问的方法
  • 关于单台mongodb实例开启oplog的过程详解
  • 大数据环境下mongodb为何要加索引浅析
  • mongodb基础入门_动力节点java学院整理
  • mongodb 主从复制实例讲解
  • mongodb分片集群部署详解
  • 浅析mongodb性能优化的相关问题
  • mongodb中创建索引需要注意的事项
  • mongodb3.4集群搭建实战之高可用的分片+副本集
  • mongodb入门教程之常用的运维技术介绍
  • centos6.5中安装mongodb简明总结
  • 如何使用docker安装notebook
  • 如何使用docker安装应用程序
  • 如何在docker下运行windows程序
  • docker windows 安装好后怎么用
  • 如何使用 Docker 安装最新版的 aria2
  • 如何安装最新版docker
  • 如何安装指定版本的docker
  • 如何在一个Docker容器里安装Discourse
  • 如何使用 Docker 安装最新版的 aria2
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页mongodbspringboot整合mongodb的docker开发教程全解docker容器化部署尝试——多容器通信(node+mongodb+nginx)docker中使用mongodb数据库详解(在局域网访问)基于docker的mongodb实现授权访问的方法关于单台mongodb实例开启oplog的过程详解大数据环境下mongodb为何要加索引浅析mongodb基础入门_动力节点java学院整理mongodb 主从复制实例讲解mongodb分片集群部署详解浅析mongodb性能优化的相关问题mongodb中创建索引需要注意的事项mongodb3.4集群搭建实战之高可用的分片+副本集mongodb入门教程之常用的运维技术介绍centos6.5中安装mongodb简明总结mongodb常用操作命令大全mongodb各种查询操作详解mongodb数据库插入、更新和删除操mongodb 数据库操作--备份 还原 mongodb插入数据的3种方法mongodb中使用distinct去重的简单mongodb整库备份与还原以及单个cmongodb查询操作限制返回字段的方浅谈mysql和mariadb区别(mariadbmongodb 实现远程连接mongodb db.serverstatus()输出内容中文注mongodb快速入门笔记(三)之mongodb插入文mongodb系列教程(六):java操作mongodbmongodb 数据类型及mongoose常用curdmongodb索引知识_动力节点java学院整理初识nosql nosql数据库入门 nosql数据库基mongodb数据库文档操作方法(必看篇)mongodb分片集群部署详解使用mongodb实现打卡签到系统的实例代码mongodb的主从复制及副本集的replset配置
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved