前置条件

  • 硬件要求
    • 至少 8GB 内存(建议 16GB 或更高)。
    • 至少 20GB 可用磁盘空间(Milvus 和 Redis 数据存储)。
  • 软件要求
    • 已安装 Docker Desktop(Windows 11 或 macOS)。
    • 确保 Docker Compose 已包含在 Docker Desktop 中(通常默认安装)。
  • 网络要求
    • 稳定的互联网连接,用于拉取 Docker 镜像。
  • 软件版本
    • Milvus:2.4.4(最新稳定版)。
    • Redis:7.2(最新稳定版)。
  • 端口要求
    • Milvus:19530(gRPC)、9091(RESTful API)。
    • Redis:6379(默认端口)。
    • 确保以上端口未被占用。

一、Windows 11 系统部署 Milvus 和 Redis

1. 安装 Docker Desktop

  1. 下载 Docker Desktop

    访问 Docker 官方网站,下载适用于 Windows 的 Docker Desktop 安装包。
  2. 安装 Docker Desktop   

  • 双击下载的安装文件,按照提示完成安装。
  • 启用 WSL 2(Windows Subsystem for Linux 2)支持:

    • 打开 PowerShell(以管理员身份),运行:

wsl --install

   3.验证 Docker 安装

  • 打开 PowerShell 或命令提示符,运行:

docker --version
docker compose version

  • 确保输出版本信息,例如 Docker version 27.x.x 和 Docker Compose version v2.x.x

2. 配置 Docker Compose 文件   

1.创建项目目录

  • 在本地磁盘(例如 C盘)创建一个文件夹,用于存放 Milvus 和 Redis 的配置文件和数据:

mkdir C:\milvus_redis
cd C:\milvus_redis

2.创建 Docker Compose 文件

  • 在 C:\milvus_redis 目录下创建文件

docker-compose.yml

内容如下:

version: '3.5'

# Windows/x86_64 Version
# Redis Password set to: 1234

services:
  etcd:
    container_name: milvus-etcd
    image: quay.io/coreos/etcd:v3.5.5
    environment:
      - ETCD_AUTO_COMPACTION_MODE=revision
      - ETCD_AUTO_COMPACTION_RETENTION=1000
      - ETCD_QUOTA_BACKEND_BYTES=4294967296
      - ETCD_ENABLE_V2=true
    volumes:
      - ./volumes/etcd:/etcd/data
    command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd/data

  minio:
    container_name: milvus-minio
    image: minio/minio:RELEASE.2023-03-20T20-16-18Z
    environment:
      MINIO_ACCESS_KEY: minioadmin
      MINIO_SECRET_KEY: minioadmin
    volumes:
      - ./volumes/minio:/minio/data
    command: minio server /minio/data
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  standalone:
    container_name: milvus-standalone
    # 使用多架构镜像,Docker on Windows 会自动拉取 x86_64 版本
    image: milvusdb/milvus:v2.4.4
    command: ["milvus", "run", "standalone"]
    environment:
      - ETCD_ENDPOINTS=etcd:2379
      - MINIO_ADDRESS=minio:9000
    volumes:
      - ./volumes/milvus:/var/lib/milvus
    ports:
      - "19530:19530"
      - "9091:9091"
    depends_on:
      - "etcd"
      - "minio"

  redis:
    container_name: milvus-redis
    image: redis:latest
    restart: always
    ports:
      - "6379:6379"
    volumes:
      - ./volumes/redis:/data
    # 设置 Redis 密码为 1234
    command: redis-server --requirepass 1234

networks:
  default:
    name: milvus-network

  • 说明

    • Milvus 服务

      • image: 使用 Milvus 官方镜像 milvusdb/milvus:v2.4.10
      • ports: 映射 gRPC(19530)和 RESTful API(9091)端口。
      • volumes: 数据持久化存储到本地 ./volumes/milvus 目录。
      • environment: 配置日志级别和 Etcd 参数。
      • command: 启动 Milvus 单机模式。
    • Redis 服务

      • image: 使用 Redis 官方镜像 redis:7.2
      • ports: 映射默认端口 6379
      • volumes: 数据持久化存储到本地 ./volumes/redis 目录。
      • command: 启用 AOF(Append Only File)持久化模式。
    • volumes: 定义持久化存储卷。

3. 启动 Milvus 和 Redis

  1.拉取镜像并启动容器

  • 在 C:\milvus_redis 目录下,打开 PowerShell,运行:

docker compose up -d

  • -d 表示后台运行容器。

2.验证容器状态

  • 检查容器是否正常运行:

docker ps

  • 确认 milvus_standalone 和 redis 容器均处于 Up 状态。

4. 验证 Milvus 服务

    1.安装 Milvus Python SDK

  • 确保已安装 Python 3.8 或以上版本。
  • 在 PowerShell 中安装:

pip install pymilvus

   2.测试 Milvus 连接

  • 创建 Python 脚本(例如 test_milvus.py ),内容如下:

 from pymilvus import connections, utility

# 连接到 Milvus
connections.connect(host="localhost", port="19530")

# 检查版本
print(f"Milvus version: {utility.get_server_version()}")

运行脚本:

python test_milvus.py

  • 输出类似 Milvus version: 2.4.10 表示 Milvus 部署成功。

5. 验证 Redis 服务

  1.安装 Redis Python 客户端

  • 在 PowerShell 中安装:

pip install redis

2.测试 Redis 连接

  • 创建 Python 脚本(例如 test_redis.py ),内容如下:

import redis

# 连接到 Redis
client = redis.Redis(host="localhost", port=6379, decode_responses=True)

# 测试读写
client.set("test_key", "Hello, Redis!")
value = client.get("test_key")
print(f"Redis value: {value}")

运行脚本:

python test_redis.py

  • 输出类似 Redis value: Hello, Redis! 表示 Redis 部署成功。

6. 停止和清理

    停止服务:

  docker compose down

二、M1 芯片 macOS 系统部署 Milvus 和 Redis

M1 芯片(ARM64 架构)运行 Docker 时需确保镜像兼容性。Milvus 和 Redis 官方镜像均支持 ARM64,因此可以直接使用,但需正确配置 Docker Desktop。

1. 安装 Docker Desktop

  1. 下载 Docker Desktop

     访问 Docker 官方网站,下载适用于 macOS(Apple Silicon)的 Docker Desktop 安装包。
  2. 安装 Docker Desktop

    • 双击下载的 .dmg 文件,按照提示拖动安装。
    • 安装完成后,启动 Docker Desktop,并确保其在菜单栏运行。
  3. 验证 Docker 安装

docker --version
docker compose version

   确保输出版本信息,例如 Docker version 27.x.x 和 Docker Compose version v2.x.x

4.启用Rosetta(可选)

如果遇到兼容性问题,可在 Docker Desktop 设置中启用 Rosetta 模拟:

  • 打开 Docker Desktop -> Settings -> Features in Development -> 勾选 “Use Rosetta for x86/AMD64 emulation on Apple Silicon”。

2. 配置 Docker Compose 文件

  1.创建项目目录

  • 在终端中创建并进入目录:

mkdir ~/milvus_redis
cd ~/milvus_redis

2.创建 Docker Compose 文件

  • 创建文件

docker-compose.yml

version: '3.5'

# M1/ARM64 Mac Version
# Redis Password set to: 1234

services:
  etcd:
    container_name: milvus-etcd
    image: quay.io/coreos/etcd:v3.5.5
    environment:
      - ETCD_AUTO_COMPACTION_MODE=revision
      - ETCD_AUTO_COMPACTION_RETENTION=1000
      - ETCD_QUOTA_BACKEND_BYTES=4294967296
      - ETCD_ENABLE_V2=true
    volumes:
      - ./volumes/etcd:/etcd/data
    command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd/data

  minio:
    container_name: milvus-minio
    image: minio/minio:RELEASE.2023-03-20T20-16-18Z
    environment:
      MINIO_ACCESS_KEY: minioadmin
      MINIO_SECRET_KEY: minioadmin
    volumes:
      - ./volumes/minio:/minio/data
    command: minio server /minio/data
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  standalone:
    container_name: milvus-standalone
    # 使用多架构镜像,Docker on M1 会自动拉取 ARM64 版本
    image: milvusdb/milvus:v2.4.4
    command: ["milvus", "run", "standalone"]
    environment:
      - ETCD_ENDPOINTS=etcd:2379
      - MINIO_ADDRESS=minio:9000
    volumes:
      - ./volumes/milvus:/var/lib/milvus
    ports:
      - "19530:19530"
      - "9091:9091"
    depends_on:
      - "etcd"
      - "minio"

  redis:
    container_name: milvus-redis
    image: redis:latest # Redis 官方镜像同样支持多架构
    restart: always
    ports:
      - "6379:6379"
    volumes:
      - ./volumes/redis:/data
    # 设置 Redis 密码为 1234
    command: redis-server --requirepass 1234

networks:
  default:
    name: milvus-network

  • 注意:Milvus 和 Redis 镜像均支持 ARM64,无需额外配置。

3. 启动 Milvus 和 Redis

1.拉取镜像并启动容器

  • 在 ~/milvus_redis 目录下,运行:

docker compose up -d

2.验证容器状态

  • 检查容器是否运行:

docker ps

  • 确认 milvus_standalone 和 redis 容器均处于 Up 状态。

4. 验证 Milvus 服务

1.安装 Milvus Python SDK

  • 确保已安装 Python 3.8 或以上版本。
  • 在终端中安装

pip install pymilvus

2.测试 Milvus 连接

  • 创建 Python 脚本(例如 test_milvus.py ),内容与 Windows 部分相同:

from pymilvus import connections, utility

# 连接到 Milvus
connections.connect(host="localhost", port="19530")

# 检查版本
print(f"Milvus version: {utility.get_server_version()}")

运行脚本:

python test_milvus.py

5. 验证 Redis 服务

1.安装 Redis Python 客户端

  • 在终端中安装:

pip install redis

2.测试 Redis 连接

  • 创建 Python 脚本(例如 test_redis.py ),内容与 Windows 部分相同:

import redis

# 连接到 Redis
client = redis.Redis(host="localhost", port=6379, decode_responses=True)

# 测试读写
client.set("test_key", "Hello, Redis!")
value = client.get("test_key")
print(f"Redis value: {value}")

运行脚本:

python test_redis.py

6. 停止和清理

停止服务

docker compose down

清理数据(可选):

  • 删除 milvus 和 redis 目录:

rm -rf ~/milvus_redis/volumes/milvus
rm -rf ~//milvus_redis/volumes/redis

常见问题与解决方法

1.端口冲突
如果 19530、9091 或 6379 端口被占用,修改 docker-compose.yml 中的端口映射(例如 19531:19530),并在客户端
连接时使用新端口。

2.镜像拉取失败
确保网络连接正常,或尝试手动拉取镜像:

docker pull milvusdb/milvus:v2.4.10
docker pull redis:7.2

3.M1 芯片兼容性问题
如果镜像运行失败,检查 Docker Desktop 是否启用了 Rosetta 模拟。

4.连接失败
确保容器运行正常,检查防火墙(Windows)或网络设置(macOS)是否阻止了端口。

5.Redis 数据未持久化
确保 docker-compose.yml 中启用了 --appendonly yes,且 ./redis_data 目录有写权限。

 

 

 

 

 

   

   

 

          

 

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐