使用 DockerCompose 部署单机版 Mongodb

Mongodb 是最像关系型数据库的 NoSql 数据库,其数据类型非常丰富,数据结构松散,采用类似 Json 的 Bson 二进制格式存储数据,还支持对索引功能。主要应用在数据量大、读多写少或者读写都比较频繁、数据价值较低的场景中,如果社交平台的点赞和评论、游戏、物流信息和轨迹存储等。

由于在企业中,无论是开发环境还是生产环境,基本上都采用容器化技术部署中间件,因此这里也只是介绍使用 DockerCompose 部署 Mongodb,毕竟采用容器化部署中间件非常方便快速,不存在环境兼容性,省去了很多不必要的麻烦,开发人员也很容易掌握。

我的 CentOS7 的虚拟机地址为:192.168.136.128 ,已经安装过了 Docker 和 DockerCompose,在此虚拟机上演示。

Mongodb 的中文官网地址:https://www.mongodb.com/zh-cn


使用 DockerCompose 部署

首先创建 /root/mongo/data 目录,在 /root/mongo 目录下创建 docker-compose.yml 文件:

# 创建宿主机用于存放数据的目录
mkdir -p /root/mongo/data

# 对于 dockercompose 来说,其默认的配置文件名称为 docker-compose.yml
# 因此在创建一个 docker-compose.yml 配置文件
vim /root/mongo/docker-compose.yml

然后编写 docker-compose.yml 文件,内容如下:

version: '3.5'
services:
  # 服务名称为 mongodb,该名称主要用于容器之间服务的 dns 解析
  mongodb:
    # 容器的名称为 mymongo
    container_name: mymongo
    # 使用的镜像名称
    image: mongo:latest
    # 当 docker 服务启动后,自动启动 mongodb 容器
    restart: always
    # 对外映射的端口
    ports:
      - "27017:27017"
    environment:
      # 初始化一个 root 角色的用户 root 密码是 root
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=root
    # 宿主机硬盘目录映射容器内的存放数据的目录
    volumes:
      - /root/mongo/data:/data/db
    # 增加启动参数,--auth,表示连接 mongodb 需要用户名和密码
    command:
      - "--auth"

然后进入到 docker-compose.yml 文件所在的目录,指定 up 命令即可

# 进入 docker-compose.yml 文件所在的目录
cd /root/mongo/

# 通过 docker-compose 启动 mongodb 容器
docker-compose up -d

OK,经过以上过程,docker 部署 mongodb 就完成了,下面我们可以检验以下成果。

目前高版本的 Navicat 已经支持连接 Mongodb ,我使用的 Navicat 的版本是 16,如下图新建 mongodb 的连接。

image

我的虚拟机 ip 是 192.168.136.128,连接 admin 库,端口是 27017,用户名和密码都输入 root ,然后点击测试连接。

测试连接没问题后,点击确定即可,打开如下界面,发现 mongodb 下没有任何数据库,这很正常。

image

我们可以新建一个 mongodb 的数据库,比如 mytest 数据库。

image

创建后的 mytest 数据库如下图所示:

image


以上就是本篇博客有关使用 docker-compose 部署 mongodb 的介绍,总体非常简单。

启动 mongodb 时,如果不加 --auth 参数,连接 mongodb 是不需要用户名和密码的,不建议这样做。

无论开发环境,还是生产环境,建议都增加 --auth 参数,我们可以使用 MONGO_INITDB_ROOT_USERNAME 和 MONGO_INITDB_ROOT_PASSWORD 创建一个 root 角色的账号。

有关 mongodb 的操作命令,这里就不再介绍了,后续会介绍 Java 程序如何通过 SpringData 操作 mongodb 进行增删改查。

posted @ 2023-08-13 13:56  乔京飞  阅读(16816)  评论(0编辑  收藏  举报