0


Docker 安装 MongoDB

一、什么是MongoDB

    MongoDB 是一个基于分布式文件存储的数据库。是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

二、MongoDB的安装

这里使用docker来安装MongoD

1.docker 拉取mysql镜像

docker pull mongo:latest

2.运行容器

创建外部挂载的文件并进行授权

mkdir -p /mydata/mongo/config
mkdir -p /mydata/mongo/data
mkdir -p /mydata/mongo/logs
touch /mydata/mongo/config/mongod.conf
chmod 777 /mydata/mongo

然后,使用编辑器打开mongod.conf文件,并添加以下内容:

# 数据库存储路径
dbpath=/mydata/mongo/data

# 日志文件路径
logpath=/mydata/mongo/logs/mongod.log
 
# 监听的端口
port=27017

# 允许所有的 IP 地址连接
bind_ip=0.0.0.0

# 启用日志记录
journal=true

# 是否后台运行
fork=true     
                   
# 启用身份验证
#auth=true 

这个配置文件包含了MongoDB的存储路径、日志路径、监听IP和端口等配置项。可以根据自己的需求进行修改。

运行MongoDB容器

docker run -dit --name mongo \
-p 27017:27017 \
-v /mydata/mongo/config/mongod.conf:/etc/mongod.conf \
-v /mydata/mongo/data:/data/db \
-v /mydata/mongo/logs:/var/log/mongodb \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=123456 \
--restart=always  \
mongo

参数说明

-i:表示运行容器
-t:表示容器启动后进入其命令行
-d:守护式方式创建容器在后台运行
-name:容器名称

-p 27017:27017 端口映射 前面是外部访问端口:后面内部开发的端口,mongoDB默认是27017端口

-v /mydata/mongo/data:/data/db 给容器内部的数据文件指向mongodbdata ,即删除了容器,容器数据也不会丢失,下次创建容器继续挂载到/mydata/mongo/data即可看到删除容器之前的数据
-e MONGO_INITDB_ROOT_USERNAME=admin

-e MONGO_INITDB_ROOT_PASSWORD=123456 指定容器内的环境变量 初始化容器账号、密码
--restart=always 容器挂掉后自动重启

注意:如果是云服务器,记得开启对应的端口,添加对应的安全组相关策略。

3. 创建用户并设置密码

进入容器内部

docker exec -it mongo /bin/mongosh
//或
docker exec -it mongodb bash

//登录容器
mongo admin -u admin -p 123456     -u 后面的是创建容器指定的账号   -p 后面跟的是创建容器指定的密码

说明:
如果MongoDB6.0及以上使用:
docker exec -it mongo /bin/mongosh
如果是6.0以下的版本使用:
docker exec -it mongo /bin/mongo

三、创建MongoDB用户

1.mongo中各个角色对应的权限

权限说明read允许用户读取指定数据库readWrite允许用户读写指定数据库dbAdmin允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profileuserAdmin允许用户向system.users集合写入,可以在指定数据库里创建、删除和管理用户clusterAdmin只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限readAnyDatabase只在admin数据库中可用,赋予用户所有数据库的读权限readWriteAnyDatabase只在admin数据库中可用,赋予用户所有数据库的读写权限userAdminAnyDatabase只在admin数据库中可用,赋予用户所有数据库的userAdmin权限dbAdminAnyDatabase只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限root只在admin数据库中可用。超级账号,超级权限

2.创建一个用户,赋予用户root权限

注意:在createUser之前先use admin切换一下

然后执行创建用户命令

db.createUser(
    {
        user:"root",
        pwd:"123456",
        roles:[{role:"root",db:"admin"}]
    }
);

//尝试使用上面创建的用户信息进行连接。
db.auth('root', '123456');

返回 { ok:1} 则说明创建成功。

其他相关命令

//更新用户角色,修改用户权限,不会覆盖原权限信息,只新增权限:
db.updateUser("admin",{roles:[{role:"readWrite",db:"admin"}]})

//更新用户密码
db.changeUserPassword("admin","123456")

//删除用户
db.dropUser({'admin'})

//查看所有用户
show users

//查看数据库(非admin数据库的用户不能使用数据库命令)
show dbs

四、连接 MongoDB

使用Navicat 连接mongoDB,建议用16版本的,低版本可能没有连接mongoDB的选项

连接成功后,打开如下

标签: docker 容器 运维

本文转载自: https://blog.csdn.net/li_wen_jin/article/details/133639954
版权归原作者 时光有伱记忆成花 所有, 如有侵权,请联系我们删除。

“Docker 安装 MongoDB”的评论:

还没有评论