Docker 中安装MongoDB

  • 拉取最新版的mongodb镜像文件sudo docker pull mongo

  • 直接运行:docker run -p 27017:27017 --name mongodb -d mongo

  • 创建一个文件夹,用作mongodb的数据目录挂载,运行sudo docker run -p 27017:27017 -v /data/mongo:/data/db --name mongodb -d mongo

在上面的命令中,几个命令参数的详细解释如下:
-p 映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务
-v 为设置容器的挂载目录,这里是将本机的“/data/mongo”目录挂载到容器中的/data/db中,作为 mongodb 的存储目录
--name 为设置该容器的名称
-d 设置容器以守护进程方式运行
--auth是否开始鉴权,如果不想开启可以去掉

  • 进入容器:sudo docker exec -it mongodb bash

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


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

    • 通过linux命令mongo --version查询
    • 连接上数据库后,通过db.version()查询
  • 连上数据库后,我们先创建一个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"
		}
	]
}

  • 创建具有读写权限的用户
> 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"
		}
	]
}
  • 认证用户并操作
>  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 }


![](https://img2023.cnblogs.com/blog/1355734/202302/1355734-20230214182044692-777083379.png)

posted @ 2022-01-26 20:08  bm小明  阅读(357)  评论(0编辑  收藏  举报