milvus-2.3.12安装部署

参考文档

https://milvus.io/docs/v2.3.x

使用 Docker Compose 安装 Milvus standalone(即单机版),进行一个快速 milvus 的体验。

前提条件:

  1. 系统可以使用 centos 或者 ubuntu,这里使用的是CentOS Linux release 7.7.1908 (Core)
  2. 系统已经安装 docker 和 docker-compose
  3. milvus 版本这里使用 2.3.12

下载 etcd、minio、milvus

由于 milvus 依赖 etcd 和 minio,因此需要先启动这 2 个组件。同样也使用 docker 进行启动。

etcd :用来存储 milvus 的元数据。
minio:用来存储 milvus 的向量数据和索引数据。

下载 milvus-standalone-docker-compose.yml 文件,保存为 docker-compose.yml:

wget --no-check-certificate https://github.com/milvus-io/milvus/releases/download/v2.3.12/milvus-standalone-docker-compose.yml -O docker-compose.yml

这里经过了一定修改,让其更加方便使用。

这个 yml 文件里面固定了 etcd、minio、milvus 的启动参数。

先下载etct,minio,milvusdb

docker pull quay.io/coreos/etcd:v3.5.5

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

docker pull milvusdb/milvus:v2.3.12

如果下载不下来(大概率是网络问题),我这有下载好的

通过网盘分享的文件:milvus

链接: https://pan.baidu.com/s/1pnQWw3wGRHeaKvq93sIsXQ 提取码: qqqq

假设文件已经传到了 Linux 的当前目录

docker load -i minio.tar

docker load -i etcd.tar

docker load -i milvusdb.tar

docker load -i attu.tar

配置docker-compose.yml

修改后的 docker-compose.yml 文件内容如下:里面的etcd,minio,milvusdb已经下载好了

复制代码
version: '3.5'

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
      - ETCD_SNAPSHOT_COUNT=50000
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcd
    ports:
      - "2379:2379"
    command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd
    healthcheck:
      test: ["CMD", "etcdctl", "endpoint", "health"]
      interval: 5s
      timeout: 3s
      retries: 10

  minio:
    container_name: milvus-minio
    image: minio/minio:RELEASE.2023-03-20T20-16-18Z
    environment:
      MINIO_ACCESS_KEY: minioadmin
      MINIO_SECRET_KEY: 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: 5s
      timeout: 3s
      retries: 10

  standalone:
    container_name: milvus-standalone
    image: milvusdb/milvus:v2.3.12
    command: ["milvus", "run", "standalone"]
    security_opt:
      - seccomp:unconfined
    environment:
      ETCD_ENDPOINTS: etcd:2379
      MINIO_ADDRESS: minio:9000
    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

networks:
  default:
    name: milvus

启动

然后后台启动这些容器 :

docker compose up -d
-d 代表后台启动

其它一些相关命令:

docker-compose ps 查看容器
docker-compose stop 停止容器
docker-compose start 启动容器
docker-compose down 停止并删除容器 ( 特别注意以免误删容器 )
使用 ps 命令查看容器 :
如果看到 healthy状态,说明容器内的服务可以正常使用了。
这时候已经完成 milvus 服务的启动。如果想查看 milvus 的日志,可以使用如下命令:
docker logs -f milvus-standalone
milvus-standalone 为容器的名称。

启动****attu

docker run -d \
--name = attu \
-p 8000 :3000 \
-e MILVUS_URL = 192 .168.189.110:19530 \
zilliz/attu:v2.3.9
web 访问地址 :
http://192.168.189.110:8000/

可选配置

也可以配置attu和etcd,minio,milvusdb一起启动

复制代码
version: '3.5'
services:
  etcd:
    # ... (保持原有配置不变)
  minio:
    # ... (保持原有配置不变)
  standalone:
    # ... (保持原有配置不变)
  attu: # <--- 新增的 Attu 服务
    container_name: attu
    image: zilliz/attu:latest     # <--- 换成自己的版本
    ports:
      - "8000:3000"
    environment:
      MILVUS_URL: standalone:19530
    depends_on:
      - "standalone"

# networks 和 volumes 保持不变...

停止并移除之前单独运行的 Attu 容器

docker stop attu

docker rm attu

停止 Compose 服务

docker-compose down

#启动新配置

docker-compose up -d

访问:等待容器启动完成后,访问 http://192.168.189.110:8000

  • 原理 :此时 Attu 容器和 Milvus 容器在同一个 Docker 网络中。Attu 通过 standalone:19530 直接连接 Milvus 的内部端口,不再经过宿主机 IP 转发,网络畅通无阻。
相关推荐
半兽先生9 小时前
RAG 避坑指南:Embedding 模型与 Milvus 向量维度选型全解析
embedding·milvus
像风一样自由202016 小时前
17.Milvus如何完成一次向量相似度检索
人工智能·postgresql·大模型·milvus·rag·智能体
像风一样自由202017 小时前
19.Milvus数据分片扩展与高并发设计
postgresql·大模型·milvus·rag·智能体
m0_579146655 天前
PostgreSQL+Milvus分层存储架构:双写一致性与CAP理论取舍分析
postgresql·架构·milvus·cap
Chasing__Dreams5 天前
向量数据库--Milvus--2--介绍
数据库·milvus
像风一样自由20205 天前
15.Milvus是什么?为什么RAG系统经常使用它?
postgresql·大模型·milvus·rag·智能体
老郑聊AI业财智造6 天前
数据不搬家,也能做检索:Milvus的“湖原生”架构革命
人工智能·ai·架构·软件工程·软件构建·milvus
像风一样自由20206 天前
14.什么时候用pgvector什么时候单独部署Milvus
postgresql·大模型·微调·milvus
海天一色y6 天前
基于FastAPI + Milvus + DeepSeek构建的医学知识问答系统
fastapi·milvus
Jackyzhe6 天前
向量库不再囤数据:Milvus 3.0 零拷贝直读数据湖
milvus