如何使⽤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可以查看正在运⾏的容器,经过检查,确实已经起来了。
docker进入容器
注意:默认数据是存在容器系统的/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,并通过例⼦演⽰了如何运⾏和创建⽤户与集合,最后还介绍了两款⾮常友好的可视化⼯具,希望能带没有接触过的⼈⼊个门吧。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。