Ubuntu24.04安装Milvus

Title Ubuntu24.04安装Milvus
Framework Ubuntu
User wy8817399@vip.qq.com
Id 57
Created 2/24/26, 4:25 PM
Modified 2/24/26, 5:36 PM
Published Yes
Content

1、创建目录并下载docker的yml文件

sudo mkdir /Milvus && cd /Milvus
wget https://github.com/milvus-io/milvus/releases/download/v2.6.11/milvus-standalone-docker-compose.yml -O docker-compose.yml

 

2、根据服务器的实际情况修改yml文件

services:
  etcd:
    container_name: milvus-etcd
    image: quay.io/coreos/etcd:v3.5.25
    environment:
      - ETCD_AUTO_COMPACTION_MODE=revision
      - ETCD_AUTO_COMPACTION_RETENTION=1000
      - ETCD_QUOTA_BACKEND_BYTES=4294967296
      - ETCD_SNAPSHOT_COUNT=50000
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcd
    command: etcd -advertise-client-urls=http://etcd:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd
    healthcheck:
      test: ["CMD", "etcdctl", "endpoint", "health"]
      interval: 30s
      timeout: 20s
      retries: 3

  minio:
    container_name: milvus-minio
    image: minio/minio:RELEASE.2024-12-18T13-15-44Z
    environment:
      MINIO_ROOT_USER: minioadmin
      MINIO_ROOT_PASSWORD: minioadmin
    ports:
      - "9001:9001"
      - "9000:9000"
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/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
    mem_limit: 1g
    cpus: 0.5

  standalone:
    container_name: milvus-standalone
    image: milvusdb/milvus:v2.6.11
    command: ["milvus", "run", "standalone"]
    security_opt:
    - seccomp:unconfined
    environment:
      ETCD_ENDPOINTS: etcd:2379
      MINIO_ADDRESS: minio:9000
      MQ_TYPE: woodpecker
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
      interval: 30s
      start_period: 90s
      timeout: 20s
      retries: 3
    ports:
      - "19530:19530"
      - "9091:9091"
    depends_on:
      - "etcd"
      - "minio"
    mem_limit: 2g  # 4G内存需严格限制2GB,留2G给系统
    cpus: 1.5      # 双核服务器需严格限制1.5核(留0.5核给系统)

networks:
  default:
    name: milvus

 

3、启动docker

docker compse up -d

 

4、Python脚本测试

from pymilvus import connections, FieldSchema, CollectionSchema, DataType, Collection

# 连接到 Milvus 服务(默认端口 19530)
connections.connect("default", host="localhost", port="19530")

# 创建集合(类似建表)
fields = [
    FieldSchema(name="id", dtype=DataType.INT64, is_primary=True, auto_id=True),
    FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=128)
]
schema = CollectionSchema(fields, "demo collection")
collection = Collection("demo_collection", schema)

# 插入数据
import random
vectors = [[random.random() for _ in range(128)] for _ in range(10)]
collection.insert([vectors])

# 创建索引
index_params = {"index_type": "IVF_FLAT", "metric_type": "L2", "params": {"nlist": 128}}
collection.create_index("embedding", index_params)

# 搜索
collection.load()
query_vector = [[random.random() for _ in range(128)]]
results = collection.search(query_vector, "embedding", {"metric_type": "L2"}, limit=3)
print(results)

 

5、Restful API 测试

curl -X GET "http://localhost:19531/collections"

 

6、测试官方没提供cli工具,有第三方的工具mivlus -cli,但是不推荐

pip install milvus-cli
milvus_cli
# 然后在交互界面中 connect --host localhost --port 19530