使用Docker安装MongoDB数据库
创始人
2025-01-15 08:06:34
0

        大家好,前面跟大家分享了MongoDB数据库的介绍以及基本使用,下面继续跟大家分享一下如何使用 Docker 安装 MongoDB 数据库,关于 MongoDB 数据库的介绍和基础使用,大家可以参考:

MongoDB数据库基础指南

一、下载MongoDB镜像

docker pull mongo:latest

等待镜像下载完成...

下载完成后,查看镜像。

二、创建外部挂载的目录

依次执行下面命令:

# 创建一个名为/data/mongo/config的目录。-p选项表示如果父目录不存在,则同时创建父目录。 mkdir -p /data/mongo/config # 创建了一个名为/data/mongo/data的目录,用于存储 MongoDB 的数据。 mkdir -p /data/mongo/data # 创建了一个名为/data/mongo/logs的目录,用于存储 MongoDB 的日志文件。 mkdir -p /data/mongo/logs # 创建了一个空文件/data/mongo/config/mongod.conf。这个文件是 MongoDB 的配置文件。 touch /data/mongo/config/mongod.conf # 将/data/mongo目录的权限设置为 777,这意味着任何人都可以对该目录进行读、写和执行操作。 chmod 777 /data/mongo

使用 vi 或 vim 编辑器打开mongod.conf文件

vim /data/mongo/config/mongod.conf

在文件中添加以下内容(可以根据自己的需求进行调整):

# 数据库存储路径 dbpath=/data/mongo/data  # 日志文件路径 logpath=/data/mongo/logs/mongod.log  # 监听的端口 port=27017  # 允许所有的 IP 地址连接 bind_ip=0.0.0.0  # 启用日志记录 journal=true  # 是否后台运行 fork=true  # 启用身份验证 #auth=true

三、启动MongoDB容器

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

命令解释:

  • docker run:运行 Docker 容器的命令。
  • -dit:以守护进程模式运行容器,并在容器内分配一个伪终端。
  • --name mongo:为容器指定一个名称。
  • -p 17017:27017:将容器的 27017 端口映射到主机的 17017 端口,允许外部访问 MongoDB 数据库。
  • -v /data/mongo/config/mongod.conf:/etc/mongod.conf:将主机上的/data/mongo/config/mongod.conf文件挂载到容器的/etc/mongod.conf位置,作为 MongoDB 的配置文件。
  • -v /data/mongo/data:/data/db:将主机上的/data/mongo/data目录挂载到容器的/data/db位置,作为 MongoDB 的数据存储目录。
  • -v /data/mongo/logs:/var/log/mongodb:将主机上的/data/mongo/logs目录挂载到容器的/var/log/mongodb位置,作为 MongoDB 的日志存储目录。
  • -e MONGO_INITDB_ROOT_USERNAME=admin:设置 MongoDB 初始化时的 root 用户名为admin。
  • -e MONGO_INITDB_ROOT_PASSWORD=123456:设置 MongoDB 初始化时的 root 密码为123456。
  • --restart=always:容器在退出后总是自动重启。
  • mongo:指定要运行的 Docker 镜像为 MongoDB。

执行完成后如下图:

查看容器运行状态:

此时,MongoDB数据库容器启动完成!

四、创建数据库用户

进入 mongo 容器内部:

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

切换到 admin 库

use admin

执行数据库登录操作,否则后面执行命令会提示 MongoServerError[Unauthorized]: Command createUser requires authentication

# 使用创建容器时的用户名和密码 db.auth("admin","123456")

登录成功后,创建新用户 testuser

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

创建完成后,尝试使用上面创建的新用户信息进行连接

db.auth('testuser','123456')

返回 { ok:1} 则说明连接成功。

关于用户的常用命令:

1、更新用户角色,修改用户权限,不会覆盖原权限信息,只新增权限

db.updateUser("admin",{roles:[{role:"readWrite",db:"admin"}]})

2、更新用户密码

db.changeUserPassword("admin","123456") 

3、删除用户

db.dropUser({'admin'}) 

4、查看所有用户

show users 

五、使用Navicat连接MongoDB

打开 Navicat 新建数据库连接,选择MongoDB

填写配置信息

填写完成配置信息后,点击左下角“测试连接”按钮

提示连接成功,此时,在点击右下角“保存”按钮,即可保存连接配置,这样就可以通过Navicat去访问MongoDB数据库了。

相关内容

热门资讯

透视存在!wepokerplu... 透视存在!wepokerplus开挂(透视)底牌透视挂辅助挂(可靠开挂辅助AI教程)-哔哩哔哩;we...
一分钟了解!"德州之... 一分钟了解!"德州之星辅助挂"详细外挂透明挂辅助软件-竟然是有挂(哔哩哔哩);一分钟了解!"德州之星...
第九分钟了解!赣牌圈有挂(辅助... 第九分钟了解!赣牌圈有挂(辅助挂)详细透视开挂辅助安装教程(一贯有挂)-哔哩哔哩;大家肯定在之前赣牌...
透视安装!wepoker免费透... 透视安装!wepoker免费透视(透视)底牌透视挂辅助app(可靠开挂辅助系统教程)-哔哩哔哩;1....
一分钟揭秘!"wpk... 您好,wpk俱乐部盈利模式这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩...
第五分钟了解!樱花之盛辅助软件... 第五分钟了解!樱花之盛辅助软件(辅助挂)详细透视开挂辅助可靠教程(竟然是真的挂)-哔哩哔哩;樱花之盛...
透视黑科技!pokemmo辅助... 透视黑科技!pokemmo辅助器手机版下载(透视)底牌透视挂辅助软件(可靠开挂辅助2025教程)-哔...
一分钟了解!"微扑克... 一分钟了解!"微扑克ai分析"详细外挂透明挂辅助安装-真是存在有挂(哔哩哔哩);一、微扑克ai分析软...
第一分钟了解!方片比鸡脚本(辅... 第一分钟了解!方片比鸡脚本(辅助挂)详细透视开挂辅助新2025教程(确实真的是有挂)-哔哩哔哩是一款...
透视安装!wejoker辅助软... 透视安装!wejoker辅助软件价格(透视)底牌透视挂辅助系统(可靠开挂辅助可靠技巧)-哔哩哔哩;1...