轻松部署Milvus数据库:一步步实现本地测试
【代码】新手如何部署Milvus数据库?
·
1. Milvus数据库部署
version: '3.5'
services:
etcd:
container_name: milvus-etcd
image: docker.io/bitnami/etcd:3.5.5
environment:
- ETCD_AUTO_COMPACTION_MODE=revision
- ETCD_AUTO_COMPACTION_RETENTION=1000
- ETCD_QUOTA_BACKEND_BYTES=4294967296
- ETCD_SNAPSHOT_COUNT=50000
- ALLOW_NONE_AUTHENTICATION=yes
# 关键修改:ETCD_ADVERTISE_CLIENT_URLS使用0.0.0.0以确保可从任何IP访问
- ETCD_ADVERTISE_CLIENT_URLS=http://0.0.0.0:2379
- ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379
user: "1000:1000" # 保留用户ID:组ID设置
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/bitnami/etcd
healthcheck:
test: ["CMD", "etcdctl", "endpoint", "health"]
interval: 30s
timeout: 20s
retries: 3
restart: always # 添加自动重启策略
networks:
- milvus
minio:
container_name: milvus-minio
image: minio/minio:RELEASE.2023-03-20T20-16-18Z
environment:
- MINIO_ACCESS_KEY=minioadmin
- MINIO_SECRET_KEY=minioadmin
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_data
command: minio server /minio_data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
restart: always # 添加自动重启策略
networks:
- milvus
standalone:
container_name: milvus-standalone
image: milvusdb/milvus:v2.3.3
command: ["milvus", "run", "standalone"]
environment:
- ETCD_ENDPOINTS=etcd:2379
- MINIO_ADDRESS=minio:9000
- MINIO_ACCESS_KEY=minioadmin
- MINIO_SECRET_KEY=minioadmin
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
ports:
- "19530:19530"
- "9091:9091"
depends_on:
- "etcd"
- "minio"
# 添加DNS配置,确保etcd名称解析正确
extra_hosts:
- "host.docker.internal:host-gateway"
restart: always # 添加自动重启策略
networks:
- milvus
networks:
milvus:
name: milvus
driver: bridge
创建文件夹, 并授予权限(很重要)
# 创建新的目录结构
sudo mkdir -p ./volumes/etcd ./volumes/minio ./volumes/milvus
# 设置正确的权限
sudo chmod -R 777 ./volumes
执行命令进行部署
sudo docker-compose up -d
检查是否成功
# 查看容器状态
sudo docker ps
# 查看etcd日志
sudo docker logs milvus-etcd
# 查看Milvus日志
sudo docker logs milvus-standalone
2. 本地电脑进行测试
from pymilvus import connections, utility
try:
# 连接到 Milvus 服务器 host: 修改为虚拟机ip
connections.connect("default", host="192.168.10.131", port="19530")
# 获取服务器版本
version = utility.get_server_version()
print(f"连接成功!Milvus 版本: {version}")
# 列出所有集合
collections = utility.list_collections()
print(f"当前集合: {collections}")
# 断开连接
connections.disconnect("default")
print("测试完成,Milvus 运行正常")
except Exception as e:
print(f"连接失败: {e}")
更多推荐
所有评论(0)