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

相关推荐
牛奶咖啡1320 分钟前
Docker容器实践——使用Dockerfile构建docker镜像
docker·dockerfile·dockerfile是什么·dockerfile常见指令·dockerbuild工作原理·dockerfile构建镜像·dockerfile构建示例
ShineSpark20 分钟前
Ubuntu下SDL窗口偶发卡住问题深度分析
linux·运维·ubuntu
zhougl99623 分钟前
非root用户,链接ssh,并上传git
运维·git·ssh
@小博的博客24 分钟前
【Linux探索学习】进程的概念及详细解释和一些简单的相关操作
linux·运维·学习
月光下的麦克38 分钟前
Ubuntu 与 Windows 之间文件互传
linux·运维·ubuntu
爱学习的小囧40 分钟前
ESXi 升级 8.0 后 Realtek 网卡无法识别解决教程
运维·网络·esxi·realtek 网卡
宇钶宇夕42 分钟前
西门子S7-1200 OB1主程序构架-填料天车1
运维·自动化
wanhengidc42 分钟前
服务器该如何防范网络攻击?
运维·服务器·网络·网络协议·安全·web安全·智能手机
源远流长jerry42 分钟前
LVS 负载均衡完全指南:从入门到精通
运维·负载均衡·lvs
是垚不是土1 小时前
Kafka 故障排查周期长?试试 Kdoctor
linux·运维·分布式·ai·kafka·运维开发