mac 使用 Docker 安装向量数据库Milvus独立版的保姆级别教程

Milvus

  • 特点:开源的云原生向量数据库,支持多种索引类型和GPU加速,能够在亿级向量规模下实现低延迟高吞吐。具有灵活的部署选项和强大的社区支持。

  • 适用场景:适合处理超大规模数据和高性能需求的应用,如图像搜索、推荐系统和自然语言处理。

  • 了解更多关于Milvus的信息

一、环境准备

1. 硬件要求
  • 内存:至少 8GB(推荐 16GB+),Milvus 依赖的 etcd 和 MinIO 组件会占用约 4GB 内存。
  • 磁盘:至少 50GB 可用空间(存储向量数据和索引)。
  • CPU:双核 Intel 或 Apple Silicon(M1/M2)芯片。
2. 软件要求
  • macOS 版本:10.14(Mojave)或更高版本(如 macOS 14 Sonoma)。
  • Docker Desktop:安装最新版(支持 Apple Silicon 芯片的 ARM 架构镜像)。

二、安装 Docker Desktop

  1. 下载 Docker Desktop
    访问 Docker 官网,下载适合 macOS 的版本(支持 Intel 和 Apple Silicon)。

  2. 安装并启动 Docker

    • 双击下载的 .dmg 文件,将 Docker 图标拖入 Applications 文件夹。
    • 打开 Docker Desktop,首次启动时需授权权限(如访问文件系统、网络等)。
    • 登录 Docker Hub 账号(可选,但推荐以便拉取镜像)。
  3. 验证 Docker 是否安装成功
    在终端运行以下命令:

    docker --version
    docker-compose --version  # 确保 Docker Compose 已集成(v2.x+)

    输出:

三、安装 Milvus 独立版

1.拉取 Milvus 镜像
docker pull milvusdb/milvus:v2.3.12
2.创建配置文件目录
mkdir -p ~/milvus/conf
cd ~/milvus
3. 下载 Milvus 的 Docker Compose 配置文件

在终端运行以下命令,下载 Milvus 官方提供的 docker-compose.yml 文件(以 Milvus v2.3.12 为例):

wget https://github.com/milvus-io/milvus/releases/download/v2.3.12/milvus-standalone-docker-compose.yml -O docker-compose.yml

在 macOS 终端中遇到 command not found: wget 错误,通常是因为系统未安装 wget 工具。wget 是一个常用的命令行工具,用于从网络下载文件(支持 HTTP、HTTPS 和 FTP 协议)。以下是解决方法:

方法1:用 curl -o docker-compose.yml [URL]

方法2 :通过 Homebrew 安装 wget

  1. 安装 Homebrew(如果尚未安装)
    Homebrew 是 macOS 上的包管理器,可以方便地安装和管理命令行工具。
    在终端运行以下命令安装 Homebrew:

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  2. 使用 Homebrew 安装 wget
    安装完 Homebrew 后,运行以下命令安装 wget

    brew install wget
  3. 验证安装
    安装完成后,运行以下命令验证 wget 是否可用:

    wget --version

    如果输出版本信息(如 GNU Wget 1.21.4),则表示安装成功。

或手动创建文件:

# docker-compose.yml
version: '3.8'
services:etcd:image: quay.io/coreos/etcd:v3.5.5container_name: milvus-etcdenvironment:- ETCD_AUTO_COMPACTION_MODE=revision- ETCD_AUTO_COMPACTION_RETENTION=1000volumes:- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcdports:- "2379:2379"command: etcd -advertise-client-urls=http://0.0.0.0:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcdminio:image: minio/minio:RELEASE.2023-03-20T20-16-18Zcontainer_name: milvus-minioenvironment:MINIO_ACCESS_KEY: minioadminMINIO_SECRET_KEY: minioadminvolumes:- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_dataports:- "9000:9000"- "9001:9001"command: minio server /minio_data --console-address ":9001"standalone:image: milvusdb/milvus:v2.3.12container_name: milvus-standaloneports:- "19530:19530"  # gRPC 端口- "9091:9091"    # HTTP 端口environment:ETCD_ENDPOINTS: etcd:2379MINIO_ADDRESS: minio:9000volumes:- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvusdepends_on:- "etcd"- "minio"
4. 启动 Milvus 服务

在终端进入 docker-compose.yml 所在目录,运行以下命令:

docker compose up -d
  • -d 表示后台运行。
  • 首次启动会下载 Milvus、etcd 和 MinIO 的镜像(约 2GB),需耐心等待。
3. 验证服务状态

运行以下命令检查容器是否正常运行:

docker compose ps

输出示例:

NAME                COMMAND                  STATE           PORTS
milvus-etcd         "/usr/local/bin/etcd..." Up (healthy)   2379/tcp, 2380/tcp
milvus-minio        "/usr/bin/docker-ent..." Up (healthy)   9000/tcp, 9001/tcp
milvus-standalone   "/tini -- milvus run..." Up (healthy)   0.0.0.0:19530->19530/tcp, 0.0.0.0:9091->9091/tcp

4. 访问 Milvus Web UI

  • 打开浏览器,访问 http://localhost:9091/webui
  • 默认无需登录,可直接查看 Milvus 的运行状态、集合信息等。

四、连接 Milvus 客户端

1. 使用 PyMilvus 连接

安装 PyMilvus:

pip3 install pymilvus==2.5.4

测试连接:

from pymilvus import connectionsconnections.connect(host="localhost",port="19530",user="",password=""
)
print(connections.list_connections())  # 输出连接信息
2. 使用 cURL 测试健康检查
curl -I http://localhost:9091/healthz

返回 HTTP/1.1 200 OK 表示服务正常。


五、常见问题排查

  1. 镜像下载慢
    • 配置 Docker 国内镜像源(如阿里云、中科大等)。
    • 修改 Docker Desktop 的 Settings > Docker Engine,添加以下配置:
      {"registry-mirrors": ["https://<your-mirror-url>"]
      }
  2. 容器启动失败
    • 检查日志:
      docker compose logs -f

      常见原因:

      • 端口冲突

                修改 docker-compose.yml 中的端口映射(如 19530:19530 改为 19531:19530
      • 内存不足

        在 Docker Desktop 设置中增加内存分配(建议至少 4GB)
  3. Apple Silicon 芯片兼容性问题
    • 确保使用 Milvus 的 ARM 镜像(如 milvusdb/milvus:v2.5.4-arm64)。
    • 修改 docker-compose.yml 中的镜像标签为 -arm64
  4. 数据持久化问题
    • 默认数据存储在 ./volumes/ 目录下,删除容器前需备份该目录。
    • 停止并删除容器:
      docker compose down -v # -v 删除数据卷

六、卸载 Milvus

  1. 停止并删除容器:
    docker compose down -v
  2. 删除配置文件和卷:
    rm -rf docker-compose.yml volumes/

总结

        通过本教程,你可以在 macOS 上快速部署 Milvus 独立版,并通过 Web UI 或客户端进行交互。Milvus 独立版适合开发测试和小规模生产环境,如需分布式部署,可参考官方 Kubernetes 部署方案。你也可以参考使用Docker安装 Milvus 独立版(官方文档)。

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

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

相关文章

一款独立于游戏外的键盘源按键辅助工具他来了

一款独立于游戏外的键盘源按键辅助工具 一&#xff01;不需要安装&#xff0c;下载即用 二&#xff01;只要熟悉hekili体系 三&#xff01;略懂wa定制 四&#xff01;知道如何循环并且会自行模拟 五&#xff01;会simc最好 直接就上手了&#xff01; 我们的不是一键宏&…

python学生作业提交管理系统-在线作业提交系统

目录 技术栈介绍具体实现截图系统设计研究方法&#xff1a;设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理&#xff0c;难度适中&#xf…

Spring Boot + Vue 实现在线视频教育平台

一、项目技术选型 前端技术&#xff1a; HTML CSS JavaScript Vue.js 前端框架 后端技术&#xff1a; Spring Boot 轻量级后端框架 MyBatis 持久层框架 数据库&#xff1a; MySQL 5.x / 8.0 开发环境&#xff1a; IDE&#xff1a;Eclipse / IntelliJ IDEA JDK&…

引文索引数据库在科研中的应用

如何利用引文索引数据库高效检索、分析研究论文&#xff0c;发现高水平论文&#xff0c;锁定特定领域的经典文献&#xff1f;如何跟踪最新研究进展&#xff1f; 回放链接 image.png image.png image.png image.png image.png image.png image.png image.png image.png image.pn…

《供应链网络攻击的风险与防范》

中国古语有云&#xff1a;“千里之堤&#xff0c;溃于蚁穴。”供应链攻击正是利用这种系统性弱点发起攻势。近年来&#xff0c;随着国内数字化转型加速&#xff0c;供应链安全问题频发。从某盟删库事件到某头部物流企业数据泄露&#xff0c;从某国产工业软件遭恶意代码植入到某…

ETL介绍及kettle等工具学习

ETL介绍及kettle等工具学习 1. 什么是ETL&#xff1f; ETL&#xff08;Extract, Transform, Load&#xff09;是数据集成领域的核心流程&#xff0c;用于将数据从多个分散的源系统中抽取、清洗、转换后加载到目标数据仓库或数据湖中&#xff0c;以支持分析、报表和决策。其核…

图形渲染+事件处理最终版

基于之前做的项目图形移动处理-CSDN博客添加了相机&#xff0c;透视投影&#xff0c;鼠标控制图形旋转。虽然个人感觉这个项目用的是一个二维的三角形&#xff0c;给他加透视投影和相机意义不大&#xff0c;因为透视投影是近大远小&#xff0c;我这个程序设置了放大缩小的限制&…

G口大带宽服务器线路怎么选

G口大带宽服务器线路选择指南 ​​一、线路类型与特点​​ ​​单线&#xff08;电信/联通/移动&#xff09;​​ ​​优势​​&#xff1a;带宽独享、价格低、延迟稳定&#xff0c;适合单一运营商用户集中场景。​​劣势​​&#xff1a;跨运营商访问延迟高&#xff08;如电信…

HTML10:iframe内联框架

iframe内部框架 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>内联框架学习</title> </head> <body> <!--iframe内联框架 src:地址 width-height:高度宽度 --> <iframe…

基于 Spring Boot 瑞吉外卖系统开发(十一)

基于 Spring Boot 瑞吉外卖系统开发&#xff08;十一&#xff09; 菜品启售和停售 “批量启售”、“批量停售”、操作列的售卖状态绑定单击事件&#xff0c;触发单击事件时&#xff0c;最终携带需要修改售卖状态的菜品id以post请求方式向“/dish/status/{params.status}”发送…

springboot war包tomcat中运行报错,启动过滤器异常,一个或多个筛选器启动失败。

错误信息&#xff1a; "level": "ERROR", "thread": "localhost-startStop-1", "class": "o.a.c.c.C.[.[localhost].[/Crmeb-admin]", …

Cursor —— AI编辑器 使用详解

Cursor - The AI Code Editor 一、Cursor 是什么&#xff1f; Cursor 是一款优秀的AI代码编辑器&#xff0c;它内置了 Deepseek-R1、GPT-4、Claude等 AI 模型。 简单说&#xff0c;就是&#xff1a;Cursor VS Code 编辑器 AI 大模型 Cursor 功能特性&#xff08;代码补全、…

在Excel图表添加辅助线

前言&#xff1a;博主最近是有点忙&#xff0c;好吧&#xff0c;就是很忙&#xff0c;但我也不想水文章的&#xff0c;每一篇文章都是本人精心编辑&#xff0c;觉得对大家有用才发布的。而且同一个类型的文章&#xff0c;我基本都会写在同一篇中方便大家集中获取。本来这篇文章…

2025.5.8总结(中期审视)

今日记录&#xff1a; 晚上&#xff0c;主管找我聊了关于中期绩效审视的问题。 首先就是让我汇报上半年的工作进展&#xff0c;汇报完后&#xff0c;感觉体现不出自己的工作量&#xff0c;这确实考验个人的汇报能力。 汇报完工作后&#xff0c;主管开始给我提了一些建设性的…

Excel模版下载文件导入

工作中经常遇到Excel模板下载&#xff0c;然后填好后再导入的情况&#xff0c;简单记录下&#xff0c;方便下次使用 Excel模版下载&#xff08;返回Base64&#xff09; 模板文件存放位置 import java.util.Base64; import org.apache.commons.io.IOUtils; import org.sprin…

SpringBoot 讯飞星火AI WebFlux流式接口返回 异步返回 对接AI大模型 人工智能接口返回

介绍 用于构建基于 WebFlux 的响应式 Web 应用程序。集成了 Spring WebFlux 模块&#xff0c;支持响应式编程模型&#xff0c;构建非阻塞、异步的 Web 应用。WebFlux 使用了非阻塞的异步模型&#xff0c;能够更好地处理高并发请求。适合需要实时数据推送的应用场景。 WebClie…

模拟Sch LVS Sch 方法

Step1&#xff1a;打开calibre 打开一个terminal&#xff0c;进到想要做lvs的路径&#xff1a; 在terminal 敲入calibre -gui&#xff0c;产生calibre 界面 点击nmLVS&#xff0c;产生calibre LVS界面 Step2&#xff1a;LVS 界面设置1 LVS rules file&#xff1a;加载lvs规…

注解的定义

一、理论说明 1. 注解的定义 Java 注解是从 JDK 5.0 开始引入的一种元数据机制&#xff0c;它可以为代码添加额外的信息&#xff0c;这些信息不影响程序的运行逻辑&#xff0c;但可以在编译期、类加载期或运行期被读取和处理。注解本质上是一种特殊的接口&#xff0c;所有注解…

面试实践AND面经热点题目总结

1、对于Rocketmq消息积压、丢失如何解决&#xff1f; 消息积压原因以及解决方案 &#x1f3af; 产生原因&#xff1a; 消费者处理能力弱&#xff0c;消费速度远低于生产速度&#xff1b; 网络不稳定&#xff0c;消费者拉取消息失败&#xff1b; 消费端异常&#xff08;如处理…

【KWDB 创作者计划】使用Docker实现KWDB数据库的快速部署与配置

【KWDB 创作者计划】使用Docker实现KWDB数据库的快速部署与配置 前言一、KWDB介绍1.1 KWDB简介1.2 主要特点1.3 典型应用场景 二、环境介绍2.1 部署环境要求2.2 本地环境规划2.3 部署模式 三、部署Docker环境3.1 安装相关工具3.2 配置Docker软件源3.3 更新软件源3.4 安装Docker…