当前位置: 首页 > news >正文

ubuntu 安装 milvus

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.zskr.cn/news/7999.html

相关文章:

  • SI/PI学习笔记1 -20250911
  • Web开发工具一套式部署Maven/Nvm/Mysql/Redis - 教程
  • 单词翻转
  • 详细介绍:kafka如何保证消息不被重复消费
  • C++ 最开始的地方
  • ClkLog埋点与用户行为分析系统:架构升级与性能全面提升
  • ARC187 做题记
  • lombok与mapstruct冲突的问题
  • SAP物料自动记账科目设置总结
  • NVR设备ONVIF接入平台EasyCVR视频融合平台智慧小区视频监控一站式建设方案
  • 移远模组使用移远云平台对接指令
  • 2025年最火的免费客服系统分享
  • MCP服务自用
  • Nexpose 8.21.0 for Linux Windows - 漏洞扫描
  • 天上的乌云不见了,但是没有下雨,那它们都去哪了呢?
  • afx100.dll afrvidwindowmanager.dll afresu.dll afrcomputeserver.dll afckernel.dll aexplore_view. - 详解
  • UE5 增量 Cook
  • 【数据库强大的系统Trip 第1站】总概
  • RenderPass与 SubPass 理论
  • 详细介绍:html让该元素忽略所有鼠标事件,例如点击、悬停、拖拽都无效。
  • 梗棋
  • javax.imageio.IIOException: Cant create output stream! 解决方法 验证码出不来
  • 【转载】在Vue3中引用Vue2组件
  • Windows Server 2016 中文版、英文版下载 (2025 年 9 月更新)
  • 美联储降息 25 个基点,这事儿跟我们有多大关系?
  • Windows Server 2022 中文版、英文版下载 (2025 年 9 月更新)
  • k8s系列--前世今生
  • excel文本改为数据格式
  • 面向对象初步接触-学生信息管理系统
  • Numpy高维数组的索引()