Docker 部署 milvus

📅 2026/7/6 14:14:41 👁️ 阅读次数 📝 编程学习
Docker 部署 milvus

1 创建工作目录 D:\home\milvus

2 创建文件 docker-compose.yml

内容:

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

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

restart: always

minio:

container_name: milvus-minio

image: minio/minio:RELEASE.2023-03-20T20-16-18Z

environment:

MINIO_ACCESS_KEY: minioadmin

MINIO_SECRET_KEY: minioadmin

volumes:

- ./minio:/minio_data

command: minio server /minio_data

restart: always

milvus:

container_name: milvus-standalone

image: milvusdb/milvus:v2.4.5

command: ["milvus", "run", "standalone"]

environment:

ETCD_ENDPOINTS: etcd:2379

MINIO_ADDRESS: minio:9000

volumes:

- ./milvus:/var/lib/milvus

ports:

- "19530:19530"

- "9091:9091"

depends_on:

- etcd

- minio

restart: always

attu:

image: zilliz/attu:v2.4

container_name: milvus-attu

ports:

- "8000:3000"

environment:

MILVUS_URL: milvus:19530

depends_on:

- milvus

restart: always

2 power shell cd D:\home\milvus

执行 docker-compose up -d 然后等待

启动3个容器

  • milvus-etcd: 元数据存储
  • milvus-minio: 对象存储
  • milvus-standalone: Milvus 服务器

3

停止服务 docker-compose down

查看日志 docker-compose logs -f

重启服务 docker-compose restart

Python 客户端示例

pip install pymilvus

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'}"]
"""