mongod社区版 + mongot社区版,实现数据库+向量库检索等功能

部署目录层级

kotlin 复制代码
mongo
├── mongod
│   ├── data
│   ├── docker-compose.yml
│   ├── init.txt
│   ├── mongodb-community-server_8.2.1-ubi8.tar
│   ├── mongod.conf
│   └── sampledata.archive
└── mongot
    ├── data
    ├── docker-compose.yml
    ├── mongodb-community-search_0.54.0.tar
    ├── mongot.conf
    └── pwfile

部署 mongod社区版

创建文件 mongod.conf

yaml 复制代码
storage:
   dbPath: /data/db

net:
   port: 27017
   bindIp: 0.0.0.0

setParameter:
   searchIndexManagementHostAndPort: mongot-service:27028
   mongotHost: mongot-service:27028
   skipAuthenticationToSearchIndexManagementServer: false
   useGrpcForSearch: true


replication:
   replSetName: rs0

创建文件 init.txt

php 复制代码
# 进入shell
mongosh


# 查副本集状态
rs.status()


# 创建副本集
rs.initiate({
   _id: "rs0",
   members: [
     { _id: 0, host: "宿主机ip:27017" }
   ]
 });


# 建用户
db.getSiblingDB('admin').createUser({
   user: '数据库用户名',
   pwd: '数据库密码',
   roles: [{ role: 'root', db: 'admin' }]
});


use admin;

show users;

创建文件 docker-compose.yml

yaml 复制代码
services:
  mongod-service:
    user: root
    image: mongodb/mongodb-community-server:8.2.1-ubi8
    container_name: mongod
    command: 
         mongod --config /etc/mongod.conf 
    ports:
      - 27017:27017
    volumes:
      - ./data:/data/db
      - ./mongod.conf:/etc/mongod.conf:ro
      - /etc/hosts:/etc/hosts
    networks:
      - mongo-network
    healthcheck:
      test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 30s

networks:
  mongo-network:
    name: mongo-network

启动

csharp 复制代码
docker-compose up -d
根据init.txt,进入容器,初始化

部署 mongot社区版

创建文件 mongot.conf

yaml 复制代码
syncSource:
   replicaSet:
      hostAndPort: "mongod-service:27017"
      username: 数据库用户名
      passwordFile: /mongot-community/pwfile
      authSource: admin
      tls: false
      readPreference: primaryPreferred
storage:
   dataPath: "/data/mongot"
server:
   grpc:
      address: "mongot-service:27028"
      tls:
         mode: "disabled"
metrics:
   enabled: true
   address: "mongot-service:9946"
healthCheck:
   address: "mongot-service:8080"
logging:
   verbosity: DEBUG

创建文件 pwfile

bash 复制代码
echo -n "数据库密码" > pwfile
chmod 400 pwfile

创建文件 docker-compose.yml

yaml 复制代码
services:
  mongot-service:
    user: root
    image: mongodb/mongodb-community-search:0.54.0
    container_name: mongot
    networks:
      - mongo-network
    volumes:
      - ./data:/data/mongot
      - ./mongot.conf:/mongot-community/config.default.yml
      - ./pwfile:/mongot-community/pwfile:ro
      - /etc/hosts:/etc/hosts
    ports:
      - 27028:27028
      - 9946:9946
      - 8080:8080
    healthcheck:
      test: ["CMD", "curl", "-f", "http://宿主机ip:8080/health"]
      interval: 30s
      timeout: 10s
      retries: 3

networks:
  mongo-network:
    name: mongo-network

启动

复制代码
docker-compose up -d

验证

ruby 复制代码
验证
https://www.mongodb.com/zh-cn/docs/atlas/atlas-vector-search/tutorials/vector-search-quick-start/?deployment-type=self#init-mongo.sh
相关推荐
boooooooom1 小时前
尝尝咸淡:从朴素 RAG 到 Graph RAG——一个烹饪问答系统的三层检索升级之路
前端·后端·llm
2601_963870182 小时前
【计算机毕业设计】基于Vue+Spring Boot的助农电商系统的设计与实现
spring boot·后端·课程设计
sun༒2 小时前
Spring @Scheduled 定时任务详解:Cron表达式、执行顺序、优先级与并行调度
java·后端·spring
yuhaiqiang2 小时前
从这两件事就能看出 vibecoding 距离专业作品差距有多大?AI 能抹平技术,但抹不平品味 !
前端·后端·程序员
野生技术架构师3 小时前
Spring Boot 实现数据脱敏:自定义注解 + Jackson 序列化器
java·spring boot·后端
明月_清风4 小时前
vLLM 深度实战:2026 年生产级 LLM 推理引擎完全指南
前端·后端·ai编程
吃饱了得干活4 小时前
限界上下文之后:微服务怎么拆、上下文怎么聊?
java·后端·架构
星火10245 小时前
【Groovy翻译-进阶篇】运行时元编程与编译时元编程(上)
后端·groovy
CHHH_HHH5 小时前
【Linux系统篇】深入解析Linux文件系统:从磁盘寻址到软硬链接
linux·服务器·开发语言·后端·ubuntu