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回显

相关推荐
Java陈序员2 天前
轻量强大!一款现代化的 Kubernetes 集群管理与监控工具!
云原生·容器·kubernetes
爱吃橘子橙子柚子3 天前
3CPU性能排查总结(超详细)【Linux性能优化】
运维·cpu
Sheffield3 天前
Docker的跨主机服务与其对应的优缺点
linux·网络协议·docker
Sheffield4 天前
Alpine是什么,为什么是Docker首选?
linux·docker·容器
马艳泽4 天前
win10下运行Start Broker and Proxy报错解决
docker
舒一笑5 天前
程序员效率神器:一文掌握 tmux(服务器开发必备工具)
运维·后端·程序员
NineData5 天前
数据库管理工具NineData,一年进化成为数万+开发者的首选数据库工具?
运维·数据结构·数据库
用户13573999256605 天前
Windows 从 0 搭建 WSL2 原生 AI 开发环境:Codex + Docker + VSCode
docker
vi_h5 天前
在 macOS 上通过 Docker 安装并运行 Ollama(详细可执行教程)
macos·docker·ollama
黑心老魔5 天前
通过 Docker 创建开发环境
docker·开发环境