ubuntu 安装 milvus

news/2025/9/19 15:03:20/文章来源:https://www.cnblogs.com/pass-ion/p/19100903

docker 是 引擎,是底层的基础工具。它用于管理单个容器(Container)的生命周期(构建、运行、停止、删除)。

docker-compose 是 编排工具,是上层的操作界面。它用于定义和运行由多个容器组成的、相互关联的整套应用(Multi-Container Applications)。

特性维度Docker (CLI)Docker Compose
核心功能 管理单个容器和镜像 编排多个容器,定义一个完整的应用栈
操作对象 容器、镜像、网络、卷等 项目(Project),由 docker-compose.yml 文件定义
配置方式 通过一长串的命令行参数 (-p-v--env--link等) 通过一个 YAML 配置文件 (docker-compose.yml)
使用场景 适合运行单个容器、临时测试、学习命令 适合开发、测试、生产环境部署多服务应用(如Webapp + DB + Cache)
依赖关系 需要手动用 --link 或自定义网络处理容器间依赖和启动顺序 可以自动管理容器间的依赖、网络、启动顺序(depends_on
复杂度 命令冗长复杂,难以记忆和重复 配置清晰直观,易于版本管理和共享
可移植性 差,一长串命令不易在不同环境重现 极强,一个 docker-compose.yml 文件就能在任何有Docker和Compose的机器上完美重现环境

安装并启动docker:

sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker

验证:docker --version

 

安装docker-compose

sudo apt install -y docker-compose

验证:docker-compose --version

 

安装Python 3.7+(用于 Milvus Lite 和验证)

sudo apt install -y python3 python3-pip

验证:python3 --version(应显示 3.7 或更高)

 

Milvus 提供三种部署模式,适合不同场景:

Milvus Lite:像笔记本上的“迷你数据库”,通过 Python 库运行,无需额外服务器,适合快速学习和原型开发。
Milvus Standalone:单机“全能选手”,支持中等规模数据,适合开发、测试或小规模生产。
Milvus Distributed:分布式“超级舰队”,适合亿级向量和企业级场景。
对于 Milvus Standalone,我们将介绍两种安装方式:

Docker(Linux):通过单个容器快速启动,简单直接。
Docker Compose(Linux):通过配置文件管理 Milvus 及其依赖(etcd、MinIO),适合自定义配置。

安装方式一:Milvus Lite 

pip3 install -U pymilvus

验证安装:

from pymilvus import MilvusClient
client = MilvusClient("./milvus_demo.db")
print("Milvus Lite connected successfully!")
  • 成功后,当前目录生成 milvus_demo.db 文件,表示本地数据库已创建.

简单语义搜索验证:

from pymilvus import MilvusClient, CollectionSchema, FieldSchema, DataType
client = MilvusClient("./milvus_demo.db")
# 创建集合
schema = CollectionSchema(fields=[FieldSchema("id", DataType.INT64, is_primary=True, auto_id=True),FieldSchema("vector", DataType.FLOAT_VECTOR, dim=4)
])
client.create_collection("test_collection", schema)
# 插入数据
vectors = [[0.1, 0.2, 0.3, 0.4], [0.2, 0.3, 0.4, 0.5]]
client.insert("test_collection", {"vector": vectors})
# 插入数据
client.insert("test_collection", [{"vector": [0.1, 0.2, 0.3, 0.4]},{"vector": [0.2, 0.3, 0.4, 0.5]}])
index_params = MilvusClient.prepare_index_params()
index_params.add_index(field_name="vector",index_type="IVF_FLAT",index_name="ivf_flat_index",params={"nlist": 128}
)
# 创建索引
client.create_index(collection_name="test_collection",index_params=index_params
)
# 搜索
results = client.search("test_collection", data=[[0.1, 0.2, 0.3, 0.4]], limit=1)
print(f"Top result: ID {results[0][0]['id']}, Distance {results[0][0]['distance']}")
  • 优点:安装简单(一行 pip 命令),资源占用低,适合笔记本(4GB 内存即可)。
  • 局限性:不支持分布式部署,数据规模限于百万级,功能较 Standalone 少。

 

安装方式二:Milvus Standalone —— Docker

Milvus Standalone 通过单个 Docker 容器运行,快速部署单机环境(参考 Standalone Docker 文档)。它像一台“全能服务器”,整合 Milvus 和依赖(etcd、MinIO),适合中等规模数据。

检查 Docker:

docker --version
sudo service docker start

创建工作目录:

mkdir -p /home/milvus
cd /home/milvus

下载安装脚本:

curl -sfL https://raw.githubusercontent.com/milvus-io/milvus/v2.5.11/scripts/standalone_embed.sh -o standalone_embed.sh
chmod +x standalone_embed.sh

启动 Milvus:

bash standalone_embed.sh start
  • 启动后,milvus-standalone 容器在 19530 端口运行,嵌入 etcd(2379 端口)。
  • 数据存储在 /home/milvus/volumes/milvus,配置文件为 embedEtcd.yaml.

验证安装:

docker ps

应看到 milvus-standalone 运行。

访问 WebUI:打开浏览器,输入 http://127.0.0.1:9091/webui/,检查界面是否加载。

测试 Python 连接:

pip3 install pymilvus==2.5.8from pymilvus import connections, utility
connections.connect(host="localhost", port="19530")
print(f"Milvus version: {utility.get_server_version()}")

停止和删除:

bash standalone_embed.sh stop
bash standalone_embed.sh delete

优点与局限性

  • 优点:部署快速(几分钟),支持数据持久化,适合开发测试。
  • 局限性:配置灵活性有限,不支持分布式扩展。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/907845.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

完整教程:MySQL并发问题解析

完整教程:MySQL并发问题解析2025-09-19 15:02 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important…

面向多模态检索的向量数据库对比分析和技术选型:Elasticsearch、Milvus、Pinecone、FAISS、Chroma、PGVector、Weaviate、Qdrant

目录1.向量数据库1.1 Elasticsearch 1.2 Milvus 1.3 Pinecone 1.4 FAISS 1.5 Chroma 1.6 PGVector 1.7 Weaviate 1.8 Qdrant2.向量数据库对比分析 3.多模态大规模图文检索选型3.1需求分析 3.2推荐方案 3.3实施建议 1.…

SI/PI学习笔记1 -20250911

SI/PI学习笔记1 -20250911作为硬件测试工程师,随着信号传输速度的迭代升级,分析信号和电源完整性将成为一个必然的趋势。SI全称为Signal Integrity 信号完整性,PI全称为Power Integrity 电源完整性。 从测试方面来…

Web开发工具一套式部署Maven/Nvm/Mysql/Redis - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

单词翻转

点击查看代码 #include<iostream> #include<cstring> using namespace std; int main() {char s[105];gets_s(s);int len = strlen(s);s[len] = \0;char d[105];d[len] = \0;for (int i = 0; i < len; …

详细介绍:kafka如何保证消息不被重复消费

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

终结AI幻觉:Amazon Bedrock如何用形式化方法重塑可信AI

AI幻觉(Hallucination)是高价值企业级AI应用落地的核心壁垒。本文从技术视角深入剖析了RAG架构中幻觉的多重根源,指出传统概率性缓解方案的局限性。进而,重点解析了**亚马逊云科技(Amazon Web Services)** 在其全…

技术解读 | OceanBase 数据库诊断与调优的关键技术与方法

技术解读 | OceanBase 数据库诊断与调优的关键技术与方法最高明的诊断调优,是让风险消弭于无形。本文聚焦于体系化的诊断调优方法论,旨在通过结构化流程与关键技术,帮助开发者建立"数据驱动、工具赋能"的…

我代表编程导航,向大家道歉!

大家最近访问我们网站可能会遇到很多莫名其妙的 Bug。这是因为最近我们网站前端正在进行技术升级,为了保险起见,我们选择 灰度发布,结果翻车了。对不起,我代表编程导航,向大家道歉! 大家最近访问网站可能会遇到…

cf div2 1051 E(视角转换,构造+思维)

E 一道简约清新的构造题,感觉这种构造题真的很难得。 回顾题意:给定一个括号串,每次可以翻转两个相邻的相同括号,任意次,问能否将原序列变成一个 \(RBS\),并给出构造方案。 直接按原操作的角度来想是很困难的。这…

从“被动监控”到“主动优化”:MyEMS 重构能源管理价值的路径

长期以来,能源管理对于许多企业和园区而言,更像是一个“事后诸葛亮”式的成本中心。其工作重心往往停留在安装电表、记录数据、生成月度报表的初级阶段,这是一种典型的被动监控模式。它虽然能告诉我们“用了多少能”…

openHarmony之开源三方库zlib适配讲解 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

phoenix 导出sql执行结果到文件中

怎么使用phoenix服务安装包自带的sqlline.py文件,执行sql语句,并将结果导出到本地文件。连接phoenix ./sqlline.py zkmaster:2181执行导出逻辑 # 可以省略或设置为默认的table格式 !outputformat table # 输出的结果…

LK32V12A 过压/过流保护开关芯片 OVP过压45V 过流2.2A电流 SOT-23L

LK32V12A 过压/过流保护开关芯片 OVP过压45V 过流2.2A电流 SOT-23L概述 LK32V12A是一款过压/过流保护开关芯片, 该芯片内置高耐压功率MOSFET,芯片对输入 电压和输出电流以持续监测,当芯片监测到 输入电压或输出电流…

为什么企业需要高防IP - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

论文解读-《Graph Retrieval-Augmented Generation A Survey》 - zhang

1. 论文介绍 论文题目:Graph Retrieval-Augmented Generation: A Survey 论文领域:RAG 论文发布:2024.08 发布于Arxiv 论文代码:https://github.com/pengboci/GraphRAG-Survey 论文背景:2. 论文摘要 近年来,检索…

AI编程问题处理与传统网页搜索对比分析

AI编程问题处理与传统网页搜索对比分析引言 随着人工智能技术的快速发展,AI编程助手已经成为开发者解决编程问题的重要工具。相比传统的网页搜索方式,AI编程助手在问题处理方面展现出了独特的优势,但同时也存在一些…

深入解析:HTML元素周期表

深入解析:HTML元素周期表2025-09-19 14:34 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; f…

APP 内测分发的核心逻辑与流程,虾分发让效率翻倍

对于开发者而言,APP 内测分发不是简单的 “传安装包”,而是连接 “产品开发” 与 “正式上线” 的关键环节 —— 既要通过真实用户测试暴露问题,又要兼顾效率、安全与合规。但传统分发常陷 “用户安装复杂”“反馈收…

WPF Canvas 网格线背景样式

该代码片段是 WPF 中 UserControl 的资源定义,核心功能是为 Canvas 控件创建带虚线网格线的背景样式,通过自定义 DrawingBrush 实现重复排列的网格效果,具体说明如下: 一、样式基础信息目标控件:Canvas(画布控件…