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
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