文档中心>轻量应用服务器>实践教程>Al 智能体托管>部署 Qdrant 向量数据库应用模板

部署 Qdrant 向量数据库应用模板

最近更新时间:2025-08-21 15:42:22

我的收藏

操作场景

Qdrant 向量数据库 应用模板可为 Agent 提供 Memory 能力,帮助实现 Agent 长短期记忆。其广泛应用于语义搜索、推荐系统、生成式 AI(RAG)等场景。该应用镜像基于 Ubuntu 22.04 LTS 64bit 操作系统构建。
镜像核心特性:
服务化部署:内置 Docker Compose 和 systemd 服务,管理方便,可随实例自启动。
安全默认开启:实例首次启动时,会自动生成一个唯一的、高强度的 API 连接密钥,保障服务安全。
数据持久化:向量数据和配置被存储在主机磁盘,确保在容器重启或更新后数据不会丢失。
环境纯净:基于官方 Ubuntu 24.04 镜像构建,为您提供了一个稳定、纯净的运行环境。

部署 Qdrant 向量数据库应用模板

1. 登录 轻量应用服务器控制台,在服务器页面单击新建。或直接访问 轻量应用服务器购买页
2. 在轻量应用服务器购买页面,选择所需配置完成轻量应用服务器购买。
应用创建方式:选择使用应用模板 > Qdrant 向量数据库,其他参数配置请参见 购买方式
说明:
应用模板即应用镜像。
查看镜像说明详情请参见 基本概念
地域:建议选择与您的客户最近的地域,可降低访问时延、提高访问速度。
可用区:默认勾选随机分配,也可自行选择可用区。
注意:
推荐您选择“随机分配”可用区,同一地域不同可用区间的实例可通过内网互访。同地域下不同可用区间可实现故障隔离,若您的应用对于容灾能力有极高的要求,则可将不同实例部署在同一地域下的不同可用区内。但需注意不同实例跨可用区通信的时延较同一可用区会有一定增加。
实例创建成功后,不支持更换可用区。
实例套餐:产品组合售卖方式(包含套餐类型、套餐规格),不同套餐包含不同规格 CPU、内存、SSD 云硬盘、带宽或峰值带宽、流量包的组合。详情请参见 基础套餐
服务器名称:自定义实例名称,若不填则默认使用所选镜像名称。批量创建实例时,连续命名后缀数字自动升序。例如,填入名称为 LH,数量选择3,则创建的3个实例名称为 LH1、LH2、LH3。
登录方式:您可通过该项设置实例的登录方式
密码登录:
自动生成密码:自动生成的密码将会以站内信方式发送。
自定义密码:自定义设置实例的登录密码。
SSH密钥:为 Linux 实例绑定 SSH 密钥。
扫码登录:设置后支持通过微信扫码免密码登录 Linux 实例。
自动续费:按照实际需求配置即可。
共享存储:您可以选择实例创建过程中购买共享存储超值资源包,将自动挂载默认对象存储桶,详情请参见:介绍。注意事项如下:
2023年10月17日之后购买的实例,可以选择是否购买共享存储超值资源包,之前购买的实例可在对象存储控制台购买套餐包。
当前地域下已有生效共享存储超值资源包,后续购买实例时您可直接选择一键挂载存储桶,不会再提供共享存储超值资源包。
目前仅应用模板和操作系统镜像中的 Linux 镜像支持共享存储。
时长:表示轻量应用服务器的使用时长。
说明:
您可勾选账户余额足够时,实例到期后按月自动续费,开启实例自动续费功能。当实例创建成功后,可参见 自动续费 修改已有的自动续费设置。
台数:表示需购买轻量应用服务器的数量。
3. 单击立即购买
4. 核对配置信息后,单击提交订单,并根据页面提示完成支付。可用代金券使用说明请参见 代金券使用说明
5. 完成支付后,即可进入 轻量应用服务器控制台 查收您的轻量应用服务器实例,实例通常需要1 - 3分钟完成创建。
6. 待实例创建完成后,在目标服务器实例右上角单击

> 查看详情,进入该实例的详情页,即可进行后续操作。

使用 Qdrant 向量数据库应用模板

1. 实例详情页中单击登录

2. 每个实例在首次启动时会生成一个唯一的 API Key
密钥
,其默认保存在 Lighthouse 用户的主目录中,请妥善保管。登录实例 后执行以下命令即可获取API Key:
cat /home/lighthouse/credentials.txt
执行效果如下:

说明:
QDRANT_API_KEY= 后的内容即为 API Key。
3. 访问 Web UI 控制台
Qdrant 提供了一个强大的 Web UI,方便您查看集群状态、管理集合和执行查询。请粘贴以下地址至浏览器访问:
http://您的实例公网 IP:6333/dashboard,在窗口中输入您在 第二步 获取的 API Key 并单击 APPLY

说明:
1. 为了使您的应用程序能够访问 Qdrant 服务,我们将默认为您的实例开放以下网络端口。您可以在实例的防火墙设置中查看:

端口
协议
用途说明
6333
TCP
用于 REST API 调用和访问 Web UI 控制台。
6334
TCP
用于 gRPC 通信,在需要高性能的后端服务间调用。
2. 您的实例公网 IP 可在实例详情页-网络与域名位置处获取。

4. 进入管理页面后即可按照引导熟悉 Qdrant 看板功能。

5. 安装 Qdrant 的环境依赖:在您需要连接 Qdrant 的代码项目的 Python 环境中运行pip install qdrant-client
6. 以下 Python 代码演示了完整的连接、创建集合、插入向量和搜索流程。请将 您的实例公网 IP您的 API Key 替换为您的实际信息。
from qdrant_client import models
from qdrant_client import QdrantClient

# Qdrant 服务器的地址和端口
# 如果您是按照标准 Docker 部署的,那么这个地址通常是正确的
QDRANT_HOST = "<http://您的实例公网 IP:6333>"
QDRANT_PORT = 6333
TEST_COLLECTION_NAME = "my_test_collection"

def run_qdrant_test():
"""
执行一个完整的测试流程来验证 Qdrant 服务是否正常。
"""

try:
# 1. 连接到 Qdrant 客户端
# 如果 Qdrant 服务没有启动,这一步就会抛出异常
# 使用完整的 URL 来明确指定 HTTP 协议
# 注意:会有警告提示在不安全连接中使用 API Key,这在测试环境中是可以接受的
client = QdrantClient(
url=f"{QDRANT_HOST}:{QDRANT_PORT}",
api_key="您的 API Key"
)
print("✅ 步骤 1/5: 成功连接到 Qdrant 客户端。")

# 2. 创建一个新的集合
if client.collection_exists(collection_name=TEST_COLLECTION_NAME):
client.delete_collection(collection_name=TEST_COLLECTION_NAME)
print(f"🗑️ 删除已存在的集合 '{TEST_COLLECTION_NAME}'。")

client.create_collection(
collection_name=TEST_COLLECTION_NAME,
vectors_config=models.VectorParams(size=4, distance=models.Distance.DOT),
)
print(f"✅ 步骤 2/5: 成功创建测试集合 '{TEST_COLLECTION_NAME}'。")

# 3. 插入一个测试向量
client.upsert(
collection_name=TEST_COLLECTION_NAME,
points=[
models.PointStruct(id=1, vector=[0.9, 0.1, 0.1, 0.7], payload={"color": "red"})
],
wait=True, # 等待操作完成
)
print("✅ 步骤 3/5: 成功插入一个测试向量。")

# 4. 检索刚才插入的向量,进行验证
retrieved_points = client.retrieve(
collection_name=TEST_COLLECTION_NAME,
ids=[1],
with_payload=True,
)
assert len(retrieved_points) == 1, "检索到的点数量不为1"
assert retrieved_points[0].payload['color'] == 'red', "检索到的payload不匹配"
print("✅ 步骤 4/5: 成功检索并验证了插入的向量。")

# 5. 删除测试集合,进行清理
client.delete_collection(collection_name=TEST_COLLECTION_NAME)
print(f"✅ 步骤 5/5: 成功删除测试集合 '{TEST_COLLECTION_NAME}'。")

print("\\n🎉🎉🎉 恭喜!Qdrant 服务一切正常!🎉🎉🎉")

except Exception as e:
print("\\n❌❌❌ 测试失败!❌❌❌")
print(f"错误详情: {e}")
print("\\n请检查:")
print(" - Qdrant Docker 容器是否正在运行? (使用 `docker ps` 命令查看)")
print(f" - 连接地址和端口 ({QDRANT_HOST}:{QDRANT_PORT}) 是否正确?")
print(" - 防火墙是否阻止了该端口的连接?")
print(" - API Key是否正确?")
return False

return True


if __name__ == "__main__":
run_qdrant_test()

日常运维

服务管理

Qdrant 服务由 systemd 管理,您可以使用 systemctl 命令进行启停、重启和状态查看。
# 查看服务状态
sudo systemctl status docker-compose-qdrant.service

# 启动服务
sudo systemctl start docker-compose-qdrant.service

# 停止服务
sudo systemctl stop docker-compose-qdrant.service

# 重启服务
sudo systemctl restart docker-compose-qdrant.service

查看日志

可以通过 Docker Compose 命令实时查看 Qdrant 容器的运行日志,帮助排查问题。
# -f 参数表示持续跟踪日志输出
sudo docker compose -f /opt/qdrant/docker-compose.yml logs -f


默认数据与配置文件路径

#数据存储目录(所有向量数据、索引和集合配置均在此目录下)
/opt/qdrant/qdrant_data/

#Docker Compose 配置文件(定义了 Qdrant 容器的启动参数、版本和配置)
/opt/qdrant/docker-compose.yml

#API Key存储文件
/home/lighthouse/credentials.txt

#Systemd 服务单元文件:
/etc/systemd/system/docker-compose-qdrant.service

常见问题

如何修改或重置 API 密钥?

1. 编辑配置文件:使用 sudo nano /opt/qdrant/docker-compose.yml 打开文件,找到 api_key: 字段并修改为您想要的新密钥。
2. 重启服务:执行 sudo systemctl restart docker-compose-qdrant.service 使新密钥生效。
注意:
重启服务可能导致当前 Docker 容器暂停提供服务。
3. 更新凭据文件:执行 echo "您的新密钥" > /home/lighthouse/credentials.txt,以便于后续查找。

如何升级 Qdrant 版本?

1. 编辑配置文件:使用 sudo nano /opt/qdrant/docker-compose.yml 打开文件。
2. 修改镜像版本:找到 image: qdrant/qdrant:latest 这一行,将 latest 替换为您想升级到的具体版本号(例如 v1.15.2)。建议使用明确的版本号以保证稳定性。
3. 重启服务:执行 sudo systemctl restart docker-compose-qdrant.service。服务重启时,Docker 会自动拉取您指定的新版本镜像并启动它。