在docker下部署mongodb,并开启远程连接,设置用户信息,并使用studio3登陆后,可创建修改集合

1. 拉取镜像

docker pull mongo:4.2
这里我选择是4.2的版本

2. 创建容器

docker run --name mongodb -p 27017:27017 -v /mongo/data:/data/db -d mongo:4.2 --auth
--auth:需要密码才能访问容器服务

3. 启动容器之后,使用admin进入

docker exec -it mongodb  mongo admin

在这里插入图片描述

4. 创建管理员用户,并赋予权限

# 切换数据库
> use admin
# 创建一个名为 admin,密码为 123456 的用户。
> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')
# 退出
> exit

在这里插入图片描述

返回为1,代表验证成功

5.创建普通用户、密码和数据库

# 以 admin 用户身份进入mongo
docker exec -it mongodb mongo admin
# 对 admin 用户 进行身份认证
> db.auth("admin","123456");
# 创建 用户、密码和数据库:
> db.createUser({ user: 'user1', pwd: '123456', roles: [ { role: "readWrite", db: "app" } ] });
# 退出
> exit

6. 登录 APP 数据库,对数据库信息增删改查

# 以 admin 用户身份进入mongo
docker exec -it mongodb mongo admin
# 对 user1 用户 进行身份认证
> db.auth("user1","123456");
# 切换数据库:
> use app
# 添加数据
> db.test.save({name:"aaaa"});
# 退出
> exit

7.进入容器,设置配置文件

# 进入容器,注意此时不是以admin进入,也没有进入mongodb的shell
docker exec -it mongodb bash

#更新源
apt-get update
# 安装 vim
apt-get install vim
# 修改 mongo 配置文件
vim /etc/mongod.conf.orig
1.确保注释掉`# bindIp: 127.0.0.1` 或者改成`bindIp: 0.0.0.0` 即可开启远程连接
2.开启权限认证
security:
  authorization: enabled #注意缩进,参照其他的值来改,若是缩进不对可能导致后面服务不能重启

在这里插入图片描述

8. 重启服务,进行远程连接

在这里插入图片描述
然后就连接成功了!
在这里插入图片描述

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Docker部署MongoDB有以下几个步骤: 1. 首先,你需要获取最新的MongoDB镜像。可以使用以下命令来获取最新的镜像: ``` docker pull mongo:latest ``` 2. 接下来,创建一个目录用于存储MongoDB的数据文件。可以使用以下命令创建目录: ``` mkdir -p /export/server/docker/mongodb/data ``` 3. 运行MongoDB容器并进行映射和认证设置。可以使用以下命令运行镜像: ``` docker run --name mongodb -v /export/server/docker/mongodb/data:/data/db -d -p 27017:27017 mongo --auth ``` 这个命令,`-v`参数用于将宿主机的目录映射到容器内的目录,以实现数据持久化。`-p`参数用于将容器内的端口映射到宿主机上,以便在宿主机上连接MongoDB。`--auth`参数表示需要密码才能访问容器服务。 4. 使用Mongo Shell连接到MongoDB容器并切换到admin数据库。可以使用以下命令: ``` docker exec -it mongodb /bin/mongosh admin ``` 或者 ``` docker exec -it mongodb /bin/bash /bin/mongosh admin ``` 这个命令将以Mongo Shell的方式进入容器,并切换到admin数据库。 5. 创建一个管理员用户并授予相应的权限,并使用创建的用户进行登录。可以使用以下命令: ``` db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]}); db.auth('admin', '123456') ``` 这个命令将创建一个名为admin的用户,并赋予userAdminAnyDatabase和readWriteAnyDatabase的角色,然后使用创建的用户进行登录。 6. 进行一些基本的测试操作,比如查看数据库和表,并插入一条数据。可以使用以下命令: ``` show databases # 查看所有数据库 show tables # 查看所有表(集合) use test # 切换到test数据库(如果不存在则自动创建) db.test.insert( { _id: 1, name: "kudaren", age: "29" } ) # 插入数据 db.test.find(); # 查询数据 ``` 7. 最后,你可以使用适合你的客户端工具连接到MongoDB进行操作。 总结:Docker部署MongoDB需要先获取最新的镜像,创建数据文件存储目录,运行镜像并进行映射和认证设置,然后使用Mongo Shell连接到容器并进行操作,最后可以使用客户端工具连接到MongoDB进行管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值