docker安装MongoDB

125 阅读2分钟

1、什么是MongoDB

MongoDB是一种基于文档的分布式数据库,是目前应用最为广泛的NoSQL数据库之一。相较于传统的关系型数据库,MongoDB具有更高的灵活性、可扩展性和性能优势。

2、安装

查找镜像

docker search mongo

image.png

拉取镜像

docker pull mongo

image.png

查看镜像是否拉取成功

docker images

image.png

运行mongo容器

docker run -itd --name mongo --restart=always --privileged=true -p 27017:27017 mongo --auth

参数说明

  • -i:表示运行容器
  • -t:表示容器启动后进入其命令行
  • -d:守护式方式创建容器在后台运行
  • -name:容器名称
  • --restart=always: docker重新启动时,重启容器
  • --privileged: container内的root拥有真正的root权限
  • -p 27017:27017:端口映射(宿主机端口:容器端口),mongoDB默认是27017端口
  • –auth:访问mongo需要鉴权(账号密码访问),这个参数要放在最后面,否则会报错

image.png

查看容器

docker ps

image.png

进入容器访问MongoDB

docker exec -it mongo mongosh admin

image.png

创建一个名为admin,密码为123456的用户

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

image.png

使用上面创建的用户信息进行连接

db.auth('admin', '123456');

image.png

3、MongoDB权限说明

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

4、连接测试

通过navicat进行连接

image.png 新建数据库test

image.png

至此,docker安装MongoDB结束了。