如何使用Docker安装一个MongoDB最新版
1 安装
本文假设大家已经安装好了docker并能正常使用,所以不讲解如何安装docker了。用docker安装MongoDB最新版本如下:
# 从repository查找mongo的相关镜像,结果很多,其中第一条为官方的镜像 $ docker search mongo # 下载官方镜像的最新版本 $ docker pull mongo:latest # 完成后,检查是否下载成功 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos 7 5e35e350aded 12 days ago 203MB mongo latest 965553e202a4 3 weeks ago 363MB hello-world latest fce289e99eb9 10 months ago 1.84kB
仅需要简单几个命令,我们就拥有了MongoDB的最新镜像了,后续就可以使用了。
2 启动
完成MongoDB的镜像下载后,启动就非常简单了,一个命令即可:
$ docker run -itd --name mongo -p 27017:27017 mongo --auth 305ebd8236678905d16dd76e75dcf99fdd812be6b13c240acece7985d29b316c
(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 --version MongoDB shell version v4.2.1 git version: edf6d45851c0b9ee15548f0f847df141764a317e OpenSSL version: OpenSSL 1.1.1 11 Sep 2018 root@305ebd823667:/# mongo > db.version() 4.2.1
3.4 创建admin管理用户
连上数据库后,我们先创建一个admin用户,用以管理其它用户:
> use admin switched 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 testdb switched 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,并通过例子演示了如何运行和创建用户与集合,最后还介绍了两款非常友好的可视化工具,希望能带没有接触过的人入个门吧。
相关文章
- 由于要使用mikoomi mongodb plugin插件,所以需要php对mongodb的扩展支持,默认通过源安装的php并没有mongodb的扩展支持,具体可以通过php -m|grep mongo 验证 。这里就结...2016-11-25
- 编译安装非常的简单了我们现在的php版本已经到了php7了,下文小编来为各位介绍一篇关于PHP7快速编译安装的步骤,希望文章能够帮助到各位。 一、安装必要一些依赖 yum...2016-11-25
- 这篇文章主要介绍了Rstudio中安装package出现的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
- PHP-FPM我们相信各位用高版本的php经常使用到了,下面整理了一些关于PHP-FPM的笔记,有兴趣的可进来看看。 今天赶上了123System OPenVZ VPS全场半价的机会,购入了一...2016-11-25
安装和使用percona-toolkit来辅助操作MySQL的基本教程
一、percona-toolkit简介 percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括: 检查master和slave数据的一致性 有效地对记录进行归档 查找重复的索...2015-11-24Linux安装Pytorch1.8GPU(CUDA11.1)的实现
这篇文章主要介绍了Linux安装Pytorch1.8GPU(CUDA11.1)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-25- 这篇文章主要介绍了vscode安装git及项目开发过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-19
- 这篇文章主要为大家详细介绍了Visual Studio 2015下载和安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
- 现在我们介绍一种在Node下检查简单错误的JS代码验证工具JSHint。 JSHint的具体介绍参考http://www.jshint.com/about/,说直白点儿,JSHint就是一个检查JS代码规范与否的工具,它可以用来检查任何(包括server端和client端...2014-05-31
Centos中彻底删除Mysql(rpm、yum安装的情况)
我用的centos6,mysql让我整出了各种问题,我想重装一个全新的mysql,yum remove mysql-server mysql之后再install并不能得到一个干净的mysql,原来的/etc/my.cnf依然没变,datadir里面的数据已没有任何变化,手动删除/etc/my.cn...2015-03-15docker 启动elasticsearch镜像,挂载目录后报错的解决
这篇文章主要介绍了docker 启动 elasticsearch镜像,挂载目录后报错的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-20Ubuntu20.04安装cuda10.1的步骤(图文教程)
这篇文章主要介绍了Ubuntu20.04安装cuda10.1的步骤(图文教程),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-30- 这篇文章主要介绍了在PyCharm中安装PaddlePaddle的方法,本文给大家介绍的非常想详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-05
Postman安装与使用详细教程 附postman离线安装包
这篇文章主要介绍了Postman安装与使用详细教程 附postman离线安装包,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-05- 这篇文章主要介绍了linux服务器快速卸载安装node环境(简单上手),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-22
安装使用Mongoose配合Node.js操作MongoDB的基础教程
这篇文章主要介绍了安装使用Mongoose来让Node.js操作MongoDB的基础教程,前端js+后端node+js操作MongoDB正是所谓最流行的一种JavaScript全栈开发方案,需要的朋友可以参考下...2016-03-03解决Docker中的error during connect异常情况
这篇文章主要介绍了解决Docker中的error during connect异常情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-22- 这篇文章主要介绍了vs2019安装和使用详细图文教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了uni-app从安装到卸载的入门教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-05-15
- 一、准备编译环境,安装所需依赖包yum groupinstall 'Development' -y yum install openssl openssl-devel zlib zlib-devel -y yum install readline-devel pcre-devel ncurses-devel bison-devel cmake -y二、编译安...2015-10-21