大家好,前面跟大家分享了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数据库了。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐