操作场景
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,方便您查看集群状态、管理集合和执行查询。请粘贴以下地址至浏览器访问:

说明:
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 modelsfrom qdrant_client import QdrantClient# Qdrant 服务器的地址和端口# 如果您是按照标准 Docker 部署的,那么这个地址通常是正确的QDRANT_HOST = "<http://您的实例公网 IP:6333>"QDRANT_PORT = 6333TEST_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 Falsereturn Trueif __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 会自动拉取您指定的新版本镜像并启动它。