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. 重启服务,进行远程连接

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

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐