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 转发,网络畅通无阻。
相关推荐
YiRan_Zhao1 天前
Milvus从连接到查询操作手册
milvus
庚昀◟1 天前
基于 LangChain、RAG、LoRA 、Streamlit 的知识库问答客服系统从零到一(附项目源码)
人工智能·langchain·milvus
不爱吃米饭_2 天前
Milvus 和 PGVector,哪个更好?
milvus
响叮当!2 天前
Milvus 向量数据库使用指南
数据库·milvus
YiRan_Zhao5 天前
milvus的客户端pymilvus安装
milvus
程序员老邢5 天前
【技术底稿 17】DevOps 监控告警实战踩坑复盘 —— 企微机器人告警 + Milvus 向量库监控全流程验证
运维·机器人·企业微信·devops·milvus
james的分享6 天前
向量数据库之Milvus
数据库·milvus
程序员老邢7 天前
【产品底稿 05】商助慧 V1.1 里程碑:RAG 文章仿写模块全链路实现
java·spring boot·程序人生·ai·milvus
Flying pigs~~7 天前
从零到一构建企业级 RAG 问答系统:一个完整的模块化实践指南
数据库·人工智能·缓存·大模型·milvus·知识库·rag