docker快速部署——Milvus
Milvus作为当下最好的开源向量数据库之一,提供了多种部署方式:Milvus Lite(本地直接使用)、Milvus Standalone(容器化单机部署)、Milvus Distributed(分布式集群部署)。作为初学者,本文将为大家介绍如何使用Docker容器快速在本地部署Milvus并在开发过程中使用。
准备
- 安装Docker
- 确保docker compose可用
sh
docker-compose version
安装Milvus
- 创建docker-compose.yml文件 官方文档提供了下载方式:
sh
wget https://github.com/milvus-io/milvus/releases/download/v2.4.13-hotfix/milvus-standalone-docker-compose.yml -O docker-compose.yml
需要说明的是,该文件中不包含Attu容易,所以无法直接可视化管理Milvus数据库,以下为增加Attu容器后的配置:
yml
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
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: 30s
timeout: 20s
retries: 3
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: 30s
timeout: 20s
retries: 3
standalone:
container_name: milvus-standalone
image: milvusdb/milvus:v2.4.13
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"
attu:
container_name: attu
image: zilliz/attu:v2.4
environment:
MILVUS_URL: standalone:19530
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/attu:/app/tls
ports:
- "8000:3000"
networks:
default:
name: milvus
- 启动Milvus 在与docker-compose.yml文件同级目录下执行:
sh
sudo docker-compose up -d
共启动了四个容器:
- milvus-etcd容器不向主机暴露任何端口,并将其数据映射到当前文件夹中的volumes/etcd。
- milvus-minio容器使用默认身份验证凭据在本地为端口9090和9091提供服务,并将其数据映射到当前文件夹中的volumes/minio。
- milvus-standalone容器使用默认设置为本地19530端口提供服务,并将其数据映射到当前文件夹中的volumes/milvus。
- attu容器设置为本地8000端口提供服务,用户可以在页面上可视化使用Milvus数据库
- 访问
http://localhost:8000
至此,大家就可以愉快地使用Milvus了。
进阶
如果大家已经可以熟练使用Docker的话,只需要5分钟就可以快速使用向量数据库Milvus。在大模型时代,RAG开发已经逐渐成为一种必备技能。然而熟悉使用向量数据库则是RAG开发的核心,所以说向量数据库的重要性不言而喻了吧。
如果你想要继续深入学习Milvus,可以关注:遇码,回复:milvus,获取官方文档。