当前位置: 首页 > news >正文

Milvus Docker 部署教程

1. 环境准备

确保您的系统已安装:

  • Docker
  • Docker Compose
  • Python (用于运行客户端代码)

2. 项目结构

创建项目目录并设置以下文件:

milvus-docker/
├── docker-compose.yml
├── main.py

3. 配置文件

docker-compose.yml

version: '3.5'services:etcd:container_name: milvus-etcdimage: quay.io/coreos/etcd:v3.5.5environment:- ETCD_AUTO_COMPACTION_MODE=revision- ETCD_AUTO_COMPACTION_RETENTION=1000- ETCD_QUOTA_BACKEND_BYTES=4294967296volumes:- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcdcommand: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcdminio:container_name: milvus-minioimage: minio/minio:RELEASE.2023-03-20T20-16-18Zenvironment:MINIO_ACCESS_KEY: minioadminMINIO_SECRET_KEY: minioadminvolumes:- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_datacommand: minio server /minio_datahealthcheck:test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]interval: 30stimeout: 20sretries: 3standalone:container_name: milvus-standaloneimage: milvusdb/milvus:v2.3.3command: ["milvus", "run", "standalone"]environment:ETCD_ENDPOINTS: etcd:2379MINIO_ADDRESS: minio:9000volumes:- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvusports:- "19530:19530"- "9091:9091"depends_on:- "etcd"- "minio"

4. 启动服务

在项目目录下运行:

docker-compose up -d

这将启动三个容器:

  • milvus-etcd: 元数据存储
  • milvus-minio: 对象存储
  • milvus-standalone: Milvus 服务器
    在这里插入图片描述

5. Python 客户端示例

安装 Python 依赖:

pip install pymilvus

main.py 示例代码

from pymilvus import MilvusClient# Authentication not enabled
client = MilvusClient("http://localhost:19530")client.create_collection(collection_name="test_collection", dimension=5)client.insert(collection_name="test_collection",data=[{"id": 0, "vector": [0.3580376395471989, -0.6023495712049978, 0.18414012509913835, -0.26286205330961354, 0.9029438446296592], "color": "pink_8682"},{"id": 1, "vector": [0.19886812562848388, 0.06023560599112088, 0.6976963061752597, 0.2614474506242501, 0.838729485096104], "color": "red_7025"},{"id": 2, "vector": [0.43742130801983836, -0.5597502546264526, 0.6457887650909682, 0.7894058910881185, 0.20785793220625592], "color": "orange_6781"},{"id": 3, "vector": [0.3172005263489739, 0.9719044792798428, -0.36981146090600725, -0.4860894583077995, 0.95791889146345], "color": "pink_9298"},{"id": 4, "vector": [0.4452349528804562, -0.8757026943054742, 0.8220779437047674, 0.46406290649483184, 0.30337481143159106], "color": "red_4794"},{"id": 5, "vector": [0.985825131989184, -0.8144651566660419, 0.6299267002202009, 0.1206906911183383, -0.1446277761879955], "color": "yellow_4222"},{"id": 6, "vector": [0.8371977790571115, -0.015764369584852833, -0.31062937026679327, -0.562666951622192, -0.8984947637863987], "color": "red_9392"},{"id": 7, "vector": [-0.33445148015177995, -0.2567135004164067, 0.8987539745369246, 0.9402995886420709, 0.5378064918413052], "color": "grey_8510"},{"id": 8, "vector": [0.39524717779832685, 0.4000257286739164, -0.5890507376891594, -0.8650502298996872, -0.6140360785406336], "color": "white_9381"},{"id": 9, "vector": [0.5718280481994695, 0.24070317428066512, -0.3737913482606834, -0.06726932177492717, -0.6980531615588608], "color": "purple_4976"}],
)res = client.get(collection_name="test_collection",ids=1
)print(res)
"""
(milvus-docker) D:\node_test\milvus-docker>uv run main.py
data: ["{'id': 1, 'vector': [np.float32(0.19886813), np.float32(0.060235605), np.float32(0.6976963), np.float32(0.26144746), np.float32(0.8387295)], 'color': 'red_7025'}"]
"""

6. 验证部署

运行 Python 示例代码:

python main.py

如果看到类似以下输出,说明部署成功:

data: ["{'id': 1, 'vector': [np.float32(0.19886813), np.float32(0.060235605), np.float32(0.6976963), np.float32(0.26144746), np.float32(0.8387295)], 'color': 'red_7025'}"]

7. 服务管理

  • 停止服务:
docker-compose down
  • 查看日志:
docker-compose logs -f
  • 重启服务:
docker-compose restart

参考链接:https://milvus.io/api-reference/pymilvus/v2.4.x/MilvusClient/Vector/query.md

相关文章:

  • 内网互通原则详解!
  • 设计并应用一个IIR-ButterWorth-Filter的例子
  • LLM笔记(三)位置编码(1)
  • 【Matlab】最新版2025a发布,深色模式、Copilot编程助手上线!
  • list简单模拟实现
  • AI时代的弯道超车之第十四章:AI与生活和生命的改变
  • 山火中的动态坐标:北斗头盔B3为逆行者铺就生命通道
  • CSRF 和 XSS 攻击分析与防范
  • 02、基础入门-Spring生态圈
  • 解决:npm install报错,reason: certificate has expired
  • go-zero(十八)结合Elasticsearch实现高效数据检索
  • 在线文档管理系统 spring boot➕vue|源码+数据库+部署教程
  • Git - 1( 14000 字详解 )
  • JVM方法区核心技术解析:从方法区到执行引擎
  • 雾锁王国开服联机教程-专用服务器
  • 以项目的方式学QT开发(三)——超详细讲解(120000多字详细讲解,涵盖qt大量知识)逐步更新!
  • PaddleClas 车辆属性模型vehicle_attribute_model转onnx并部署
  • VirtualiSurg使用SenseGlove触觉手套开发XR手术培训体验
  • 「彻底卸载 Quay 容器仓库」:干净移除服务、镜像与配置的全流程指南
  • 使用GoLang版MySQLDiff对比表结构
  • 将人工智能送上太空,我国太空计算卫星星座成功发射
  • 甘肃发布外卖食品安全违法行为典型案例:一商家用鸭肉冒充牛肉被罚
  • 横跨万里穿越百年,《受到召唤·敦煌》中张艺兴一人分饰两角
  • “一码难求”的Manus开放注册但价格不菲,智能体距离“实用”还有多远
  • 上海北外滩,未来五年将如何“长个子”“壮筋骨”?
  • 通化市委书记孙简升任吉林省副省长