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
相关推荐
知其然亦知其所以然5 分钟前
SpringAI让Java会画画?用Azure OpenAI生成AI图片太惊艳了!
后端·spring·openai
BugShare6 分钟前
XSS检测绕过(UTF-7编码绕过)
后端
ZhengEnCi8 分钟前
统一认证平台完全指南-从单点登录到企业级安全访问的数字化利器
后端
9号达人10 分钟前
if-else 优化的折中思考:不是消灭分支,而是控制风险
java·后端·面试
回家路上绕了弯24 分钟前
高并发后台系统设计要点:从流量削峰到低延迟的实战指南
分布式·后端
Yefimov26 分钟前
3. DPDK:更好的压榨cpu--并行计算
后端
两万五千个小时30 分钟前
LangChain 入门教程:06LangGraph工作流编排
人工智能·后端
oak隔壁找我1 小时前
MyBatis的MapperFactoryBean详解
后端
王道长AWS_服务器1 小时前
AWS Elastic Load Balancing(ELB)—— 多站点负载均衡的正确打开方式
后端·程序员·aws
oak隔壁找我1 小时前
Spring BeanFactory 和 FactoryBean 详解
后端