首页/AI/RAG 与向量库速查/Qdrant 部署与基础运维

Qdrant 部署与基础运维

Qdrant 是 Rust 实现的向量数据库,单二进制或容器部署都简单:默认 REST 端口 6333、gRPC 端口 6334,容器方式一条命令即可跑起来,数据目录挂载持久化。

RAG 与向量库速查AI更新于 2026-10-13

Qdrant 部署形态

Qdrant 是 Rust 实现的向量数据库,提供单二进制与容器两种分发方式,默认 REST 端口 6333、gRPC 端口 6334。容器方式一条命令即可跑起来,关键是把 /qdrant/storage 挂载到宿主机,否则容器重建时数据一并消失。基础运维围绕三件事:健康检查、集合列表确认服务可用、API Key 控制谁能访问。

基本信息

默认镜像qdrant/qdrant:latest
REST 端口6333(Web UI 与 HTTP 接口同端口 /dashboard)
gRPC 端口6334,Python 客户端可走 gRPC
数据目录/qdrant/storage,必须挂载
鉴权环境变量 QDRANT__SERVICE__API_KEY

典型使用场景

  • 本地开发起一套实例:单容器加数据卷,几分钟内可跑通写入与检索
  • 迁移到生产:把数据卷换成持久化存储,并给 API Key 与端口暴露范围做限制
  • 版本升级演练:先备份数据卷或快照,再替换镜像标签,避免跨版本无法回退
  • 排查连接超时:确认客户端走的是 REST 还是 gRPC,端口是否只放行了一个
  • 容量观察:确认数据卷所在盘的剩余空间,向量与 payload 都写在这一个目录

Docker 启动(含持久化)

Docker 启动(含持久化)
docker run -d --name qdrant \
  -p 6333:6333 -p 6334:6334 \
  -e QDRANT__SERVICE__API_KEY=change-me \
  -v $(pwd)/qdrant_storage:/qdrant/storage \
  qdrant/qdrant:latest
# 只给本机应用使用时改为 -p 127.0.0.1:6333:6333,避免直接暴露公网

健康检查与列表

健康检查与列表
curl http://localhost:6333/healthz          # 服务存活
curl -H 'api-key: change-me' http://localhost:6333/collections   # 集合列表
curl -H 'api-key: change-me' http://localhost:6333/collections/kb # 单个集合详情

端口与目录速查

项值用途
6333TCPREST API 与 Web 控制台
6334TCPgRPC,客户端高性能通道
6335TCP分布式内部通信,单机部署不使用
/qdrant/storage容器路径数据与快照落盘位置

上线前检查清单

  • 数据卷是否落在持久化盘,并已确认剩余空间与备份策略
  • 版本标签是否固定,回退路径是否演练过
  • API Key 是否启用,端口是否只对可信网段或本机开放
  • 健康检查接入监控,容器异常退出能触发告警
  • 写入与检索各跑一条冒烟用例,确认鉴权头传递正确
公网可达的实例必须设置 API Key 并把端口限制在可信网段;向量库一旦被清空或篡改,恢复成本远高于重新部署。备份优先用官方快照接口,而不是直接拷贝运行中的数据目录。

易错点

  • 不挂载存储卷,容器重建后数据全部丢失,只能重新向量化
  • 只放行 REST 端口却用 gRPC 客户端连接,表现为连接超时,逐个参数排查很费时间
  • 升级镜像时直接拉 latest,跨版本存储格式不兼容导致无法回退,生产环境应固定版本标签
  • 把 /qdrant/storage 放在系统盘或容器可写层,磁盘写满后写入静默失败
  • 直接在运行中复制数据目录当备份,快照与写入交错,恢复出来的数据可能损坏

数据来源与参考

  • Qdrant 官方文档(Quickstart / Configuration)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌