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.rhkb.cn/news/48959.html

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

相关文章

(14)Element Plus项目综合案例

本系列教程目录&#xff1a;Vue3Element Plus全套学习笔记-目录大纲 文章目录 第3章 综合案例3.1 搭建项目3.1.1 创建Vite工程3.1.2 配置路由 3.2 登录模块页面3.2.1 注册页面3.2.2 登录页面3.2.3 忘记密码页面 3.3 导航设置3.3.1 头部3.3.2 侧边栏与底部1&#xff09;头像部分…

基于腾讯云MCP广场的AI自动化实践:爬取小红书热门话题

基于腾讯云MCP广场的AI自动化实践&#xff1a;爬取小红书热门话题 我正在参加Trae「超级体验官」创意实践征文&#xff0c;本文所使用的 Trae 免费下载链接&#xff1a;www.trae.com.cn/?utm_source… &#x1f50e; 背景 在人工智能快速发展的时代&#xff0c;AI技术不仅重…

C++从入门到实战(十四)初识STL与STL简介

C从入门到实战&#xff08;十四&#xff09;初识STL与STL简介 前言一、什么是 STL&#xff1f;二、STL 的版本三、STL六大组件&#xff08;目前了解即可&#xff0c;后面会逐步讲解&#xff09;1. 容器&#xff08;Containers&#xff09;—— 装数据的“盒子”2. 算法&#xf…

【LeetCode 42】接雨水(单调栈、DP、双指针)

题面&#xff1a; 思路&#xff1a; 能接雨水的点&#xff0c;必然是比两边都低&#xff08;小&#xff09;的点。有两种思路&#xff0c;一种是直接计算每个点的最大贡献&#xff08;也就是每个点在纵向上最多能接多少水&#xff09;&#xff0c;另一种就是计算每个点在横向上…

ruoyi-flowable-plus 前端框架启动报错修复

版本 1. ruoyi-flowable-plus 前端框架启动报错修复 启动时设置环境变量 "scripts": {"dev": "SET NODE_OPTIONS--openssl-legacy-provider && vue-cli-service serve","build:prod": "vue-cli-service build",&qu…

Python全流程开发实战:基于IMAP协议安全下载个人Gmail邮箱内所有PDF附件

文章目录 一、需求分析与安全前置&#xff1a;为什么需要专用工具&#xff1f;1.1 痛点场景1.2 技术方案选择 二、准备工作&#xff1a;Gmail账号安全配置与环境搭建2.1 开启两步验证&#xff08;必做&#xff01;&#xff09;2.2 创建应用专用密码&#xff08;替代普通密码&am…

Gradio全解20——Streaming:流式传输的多媒体应用(5)——基于WebRTC的摄像头实时目标检测

Gradio全解20——Streaming&#xff1a;流式传输的多媒体应用&#xff08;5&#xff09;——基于WebRTC的摄像头实时目标检测 本篇摘要20. Streaming&#xff1a;流式传输的多媒体应用20.5 基于WebRTC的摄像头实时目标检测20.5.1 环境配置及说明1. WebRTC2. TURN服务器 20.5.2 …

统计匹配的二元组个数 - 华为OD机试真题(A卷、JavaScript题解)

华为OD机试题库《C》限时优惠 9.9 华为OD机试题库《Python》限时优惠 9.9 华为OD机试题库《JavaScript》限时优惠 9.9 针对刷题难&#xff0c;效率慢&#xff0c;我们提供一对一算法辅导&#xff0c; 针对个人情况定制化的提高计划&#xff08;全称1V1效率更高&#xff09;。 看…

【Redis篇】linux 7.6安装单机Redis7.0(参数优化详解)

&#x1f4ab;《博主主页》&#xff1a; &#x1f50e; CSDN主页 &#x1f50e; IF Club社区主页 &#x1f525;《擅长领域》&#xff1a;擅长阿里云AnalyticDB for MySQL(分布式数据仓库)、Oracle、MySQL、Linux、prometheus监控&#xff1b;并对SQLserver、NoSQL(MongoDB)有了…

Admyral - 可扩展的GRC工程自动化平台

文章目录 一、关于 Admyral相关链接资源关键特性 二、安装系统要求 三、快速开始1、启动服务 四、核心功能1、自动化即代码2、AI增强工作流3、双向同步编辑器4、工作流监控5、企业级基础设施 五、示例应用六、其他信息许可证遥测说明 一、关于 Admyral Admyral 是一个基于 Pyt…

深入解析Http11AprProtocol:Tomcat高性能通信的底层原理

HTTP/1.1 协议作为 Web 通信的基础标准&#xff0c;其实现效率直接影响服务器性能。Apache Tomcat 作为 Java 生态中最流行的 Servlet 容器&#xff0c;提供了多种 HTTP 协议实现方案&#xff0c;其中基于 Apache Portable Runtime&#xff08;APR&#xff09;的 Http11AprProt…

Linux第四节:进程控制

一、进程创建 1.1 fork函数 1. fork函数有两个返回值问题 返回的本质就是写入&#xff01;所以&#xff0c;谁先返回&#xff0c;谁就先写入id&#xff0c;因为进程具有独立性&#xff0c;会发生写时拷贝&#xff0c;父进程和子进程各自指向return语句。 2. fork返回后&#x…

基于mediapipe深度学习的眨眼检测和计数系统python源码

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 人工智能算法python程序运行环境安装步骤整理_本地ai 运行 python-CSDN博客 3.部分核心程序 &…

(二)毛子整洁架构(CQRS/Dapper/DomianEvent Handler)

文章目录 项目地址一、Application 层1.1 定义CQRS的接口以及其他服务1. Command2. IQuery查询3. 当前时间服务接口4. 邮件发送服务接口 1.2 ReserveBooking Command1. 处理传入的参数2. ReserveBookingCommandHandler3. BookingReservedDomainEvent 1.3 GetBooking Query1. 创…

数据结构与算法:图论——最短路径

最短路径 先给出一些leetcode算法题&#xff0c;以后遇见了相关题目再往上增加 最短路径的4个常用算法是Floyd、Bellman-Ford、SPFA、Dijkstra。不同应用场景下&#xff0c;应有选择地使用它们&#xff1a; 图的规模小&#xff0c;用Floyd。若边的权值有负数&#xff0c;需要…

uniapp-商城-43-shop 后台管理 页面

后台管理较为简单&#xff0c;主要用于后台数据的管理&#xff0c;包含商品类别和商品信息&#xff0c;其实还可以扩展到管理用户等等 1、后台首页 包含 分类管理 商品管理 关于商家等几个栏目 主要代码&#xff1a; <template><view class"manage">…

LeetCode 1. 两数之和(Java)

LeetCode 1. 两数之和&#xff08;暴力 vs 哈希表&#xff09; 题目描述 给定一个整数数组 nums 和一个整数 target&#xff0c;要求找出数组中和为目标值的两个数&#xff0c;并返回它们的下标。假设每个输入只有一种答案&#xff0c;且同一元素不能重复使用。 示例&#xf…

《软件项目管理》笔记一

软件项目管理概述 项目管理属于软件工程的组成之一&#xff0c;另外两部分为&#xff1a;软件开发&#xff0c;过程改进。 参考书如下&#xff1a; 1.1 项目与软件项目 1、项目&#xff1a; 为了创造一个唯一的产品或提供一个唯一的服务而进行 的临时性的努力。 2、项目的…

深度学习:智能车牌识别系统(python)

这是一个基于opencv的智能车牌识别系统,有GUI界面。程序能自动识别图片中的车牌号码,并支持中文和英文字符识别,支持选择本地图片文件,支持多种图片格式(jpg、jpeg、png、bmp、gif)。 下面,我将按模块功能对代码进行分段说明: 1. 导入模块部分 import tkinter as tk…

Redis 持久化机制全面解析:RDB 与 AOF 的原理与实践

目录 前言1. Redis 持久化的总体思路2. RDB&#xff1a;快照机制详解2.1 RDB 的工作原理2.2 RDB 的优势2.3 RDB 的局限性 3. AOF&#xff1a;追加日志机制详解3.1 AOF 的工作原理3.2 AOF 的优势3.3 AOF 的缺陷 4. RDB 与 AOF 的对比分析4.1 数据丢失风险4.2 文件大小与恢复速度…
推荐文章