Qdrant生产环境部署方法(Docker)

文章目录


一、前言

我这里以docker desktop为例,所以部分路径是windows的


二、安装方式

1.拉取镜像

python 复制代码
docker pull qdrant/qdrant

2. 创建数据目录

python 复制代码
mkdir D:\ProgramData\docker_data\qdrant_data

3. 启动容器

win下

python 复制代码
docker run -d --name my-qdrant -p 6333:6333 -p 6334:6334 -v D:\ProgramData\docker_data\qdrant_data:/qdrant/storage --restart always qdrant/qdrant

linux下改成类似这样

python 复制代码
docker run -d \
--name my-qdrant \
-p 6333:6333 \
-p 6334:6334 \
-v ~/qdrant_data:/qdrant/storage \
--restart always \
qdrant/qdrant

三、测试

  1. 查看容器状态

    python 复制代码
    docker ps
  2. 访问web管理页
    http://localhost:6333/dashboard

  3. 向量库测试

    测试代码

    python 复制代码
    from qdrant_client import QdrantClient
    from qdrant_client.models import Distance, VectorParams, PointStruct
    import numpy as np
    
    # ---------------------- 1. 连接 Qdrant ----------------------
    client = QdrantClient(host="localhost", port=6333)
    print("Qdrant 状态:", client.get_collections())
    
    # ---------------------- 2. 创建集合 ----------------------
    collection_name = "my_first_collection"
    if not client.collection_exists(collection_name):
        client.create_collection(
            collection_name=collection_name,
            vectors_config=VectorParams(size=128, distance=Distance.COSINE)
        )
        print(f"集合 {collection_name} 创建成功")
    else:
        print(f"集合 {collection_name} 已存在")
    
    # ---------------------- 3. 插入数据 ----------------------
    vectors = np.random.rand(10, 128).tolist()
    points = [
        PointStruct(
            id=i,
            vector=vectors[i],
            payload={"text": f"这是第 {i} 条数据", "category": "test"}
        )
        for i in range(10)
    ]
    client.upsert(collection_name=collection_name, points=points)
    print("数据插入成功")
    
    # ---------------------- 4. 向量搜索(新版正确写法) ----------------------
    query_vector = np.random.rand(128).tolist()
    search_results = client.query_points(
        collection_name=collection_name,
        query=query_vector,  # 注意:新版用 query,不是 query_vector
        limit=3
    )
    
    # 打印结果
    print("\n搜索结果:")
    for result in search_results.points:
        print(f"ID: {result.id}, 相似度: {result.score:.4f}, 元数据: {result.payload}")

    命令行输出

    dashboard回显

相关推荐
AlfredZhao3 小时前
Docker 查看容器日志:别只记 `docker logs -f`
docker
Crazy________5 小时前
k8s部署若依微服务架构流程,v3.6.6
运维·云原生·容器·kubernetes·状态模式
云飞云共享云桌面6 小时前
广东精密机械设备工厂8-10人共享一台SolidWorks设计服务器
运维·服务器·3d·自动化·汽车·制造
jieyucx6 小时前
【高级利用】条件竞争与逻辑漏洞:与服务器赛跑的艺术
android·运维·服务器·web安全·文件上传
tianyuanwo6 小时前
服务器OS组件研发效能度量可视系统——顶层方案设计与阶段性规划
运维·服务器·度量系统
初级炼丹师(爱说实话版)6 小时前
Ubuntu服务器配置docker
服务器·ubuntu·docker
黄华SJ520it7 小时前
二二复制定点裂变双轨商城系统开发:原理、架构与实战指南
运维·小程序·架构·系统开发
生活爱好者!7 小时前
NAS还能用来开视频会议?docker一键部署MiroTalk SFU
运维·docker·容器
xiaoxiangsiyan7 小时前
GitLab CI/CD 自托管(EE 企业版)+ Kubernetes Runner 集群 + ArgoCD(GitOps 部署)
运维·网络·ci/cd·容器·kubernetes·gitlab·argocd
PC2005-cloud8 小时前
KubeSphere 安装到插件管理实战:本地 K8s 搭建可视化容器平台
云原生·容器·kubernetes