docker-compose v2.27安装milvus v2.5.8组件的详细操作步骤

发布于:2025-07-13 ⋅ 阅读:(17) ⋅ 点赞:(0)

以下是使用 Docker Compose v2.27 安装 Milvus v2.5.8 的详细步骤,包含必要的配置和验证过程:


📦 一、环境准备

  1. 系统要求
    • Linux 系统(推荐 Ubuntu 20.04+)
    • Docker Engine v20.10+
    • Docker Compose v2.27+
    • 最低资源:4核 CPU / 8GB RAM / 50GB 存储
  1. 验证版本
docker --version          # Docker >=20.10
docker compose version    # Docker Compose >=2.27

📝 二、创建配置文件

  1. 创建项目目录:
mkdir milvus-standalone && cd milvus-standalone
  1. 创建 docker-compose.yml 文件:
version: '3.8'

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

  minio:
    container_name: milvus-minio
    image: minio/minio:RELEASE.2023-09-04T19-57-37Z
    environment:
      - MINIO_ACCESS_KEY=minioadmin
      - MINIO_SECRET_KEY=minioadmin
    volumes:
      - minio_data:/minio_data
    command: minio server /minio_data --console-address ":9001"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  standalone:
    container_name: milvus-standalone
    image: milvusdb/milvus:v2.5.8
    command: ["milvus", "run", "standalone"]
    environment:
      - ETCD_ENDPOINTS=etcd:2379
      - MINIO_ADDRESS=minio:9000
      - MINIO_ACCESS_KEY=minioadmin
      - MINIO_SECRET_KEY=minioadmin
    volumes:
      - milvus_data:/var/lib/milvus
    ports:
      - "19530:19530"  # Milvus 服务端口
      - "9091:9091"    # 指标监控端口
    depends_on:
      - "etcd"
      - "minio"

volumes:
  etcd_data:
  minio_data:
  milvus_data:

⚙️ 三、启动 Milvus 服务

  1. 使用 Docker Compose 启动:
docker compose up -d
  1. 检查服务状态:
docker compose ps

预期输出:

NAME                   COMMAND                  SERVICE             STATUS              PORTS
milvus-etcd            "etcd -advertise-cl…"   etcd                running             2379-2380/tcp
milvus-minio           "/usr/bin/docker-ent…"   minio               running (healthy)   0.0.0.0:9000-9001->9000-9001/tcp
milvus-standalone      "/tini -- milvus run…"   standalone          running             0.0.0.0:9091->9091/tcp, 0.0.0.0:19530->19530/tcp

🔍 四、验证安装

  1. 检查日志
docker compose logs standalone

关键成功信息:

[INFO] [sessionutil/session.go:676] ["register service"] ["service name"=Proxy] ...
[INFO] [components/standalone.go:638] ["Milvus started successfully!"]
  1. 使用 Attu 管理界面(可选):
docker run -d -p 8000:3000 \
  -e MILVUS_URL=localhost:19530 \
  zilliz/attu:v2.5.8

访问 http://localhost:8000

  1. Python SDK 测试
from pymilvus import connections, Collection, FieldSchema, DataType, CollectionSchema

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

# 创建测试集合
fields = [
    FieldSchema(name="id", dtype=DataType.INT64, is_primary=True),
    FieldSchema(name="vector", dtype=DataType.FLOAT_VECTOR, dim=128)
]
schema = CollectionSchema(fields, "test_collection")
collection = Collection("test_collection", schema)

# 插入测试数据
data = [
    [i for i in range(100)],
    [[random.random() for _ in range(128)] for _ in range(100)]
]
collection.insert(data)

# 查询验证
collection.load()
results = collection.search(
    data=[data[1][0]], 
    anns_field="vector", 
    param={"metric_type": "L2", "params": {"nprobe": 10}}, 
    limit=5
)
print(results[0].ids)  # 应返回 [0, ...]

⚠️ 五、关键配置说明

  1. 端口映射
    • 19530:Milvus 服务端口(必需)
    • 9091:Prometheus 指标端口(监控用)
    • 9000:MinIO 对象存储端口
    • 2379:etcd 服务端口
  1. 数据持久化
    • 所有数据保存在 Docker 卷中:
docker volume inspect milvus-standalone_etcd_data
docker volume inspect milvus-standalone_minio_data
docker volume inspect milvus-standalone_milvus_data
    • 自定义存储路径(修改 docker-compose.yml):
volumes:
  etcd_data:
    driver: local
    driver_opts:
      o: bind
      type: none
      device: /path/to/etcd_data
  1. 资源限制(生产环境必加):
standalone:
  deploy:
    resources:
      limits:
        cpus: '4.0'
        memory: 8G
  mem_limit: 8g
  cpus: 4.0

🔄 六、日常运维命令

操作

命令

启动服务

docker compose up -d

停止服务

docker compose down

查看日志

docker compose logs -f standalone

升级版本

修改 image 为 milvusdb/milvus:v2.5.9

备份数据

备份 Docker 卷对应目录

清理缓存

docker compose exec standalone rm -rf /var/lib/milvus/rdb_data/*


🚨 七、故障排查

  1. 服务启动失败
    • 检查端口冲突:netstat -tuln | grep -E '19530|9091'
    • 查看详细日志:docker compose logs --tail 100 standalone
  1. 存储空间不足
docker system df  # 查看 Docker 磁盘使用
docker volume prune  # 清理未使用卷
  1. 连接问题
    • 验证网络连通性:
docker compose exec standalone curl -v etcd:2379/health
docker compose exec standalone curl -v minio:9000

通过以上步骤,您已完成 Milvus v2.5.8 的 Docker Compose 部署。建议生产环境增加 Prometheus+Grafana 监控,配置详见 Milvus 监控文档


网站公告

今日签到

点亮在社区的每一天
去签到