快速部署Milvus 2.6.4单机版向量数据库(Docker Compose方式)

快速部署Milvus 2.6.4单机版向量数据库(Docker Compose方式)

Milvus是一款开源的云原生向量数据库,专为海量向量数据的高效存储、检索和分析设计。本文将基于提供的Docker Compose配置,手把手教你快速部署Milvus 2.6.4单机版,零门槛上手向量数据库。

一、部署前置条件

在开始部署前,请确保你的服务器满足以下条件:

  1. 操作系统:Linux(本文以Ubuntu为例,CentOS/Deepin等发行版操作类似)
  2. 已安装Docker和Docker Compose:
    • Docker版本 ≥ 20.10
    • Docker Compose版本 ≥ 1.29
  3. 服务器资源:建议至少2核4G内存(单机测试可1核2G,生产环境需更高配置)
  4. 端口占用检查:确保9000、9001、19530、9091端口未被占用

二、部署步骤

1. 环境准备(若未安装Docker)

如果服务器尚未安装Docker,可执行提供的快速安装脚本(install_docker_fast.sh),或手动执行以下命令:

bash 复制代码
# 卸载旧版本(可选)
sudo apt-get remove docker docker-engine docker.io containerd runc

# 设置仓库
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release

# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 设置稳定版仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装Docker Engine
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

# 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker

# 验证安装
docker --version
docker compose version

2. 目录与文件准备

已存在~/milvus目录,且包含以下核心文件,无需额外创建:

复制代码
~/milvus/
├── docker-compose.yml    # Milvus核心部署配置
├── embedEtcd.yaml        # Etcd嵌入式配置(备用)
├── install_docker_fast.sh # Docker快速安装脚本
├── standalone_embed.sh   # 嵌入式启动脚本(备用)
├── user.yaml             # 用户配置(备用)
└── volumes/              # 数据持久化目录(自动挂载)

3. 启动Milvus服务

进入Milvus部署目录,执行启动命令:

bash 复制代码
# 进入部署目录
cd ~/milvus

# 启动Milvus(后台运行)
docker compose up -d

# 查看容器启动状态
docker compose ps
预期输出

启动成功后,docker compose ps会显示3个容器状态均为Up (healthy)

复制代码
NAME                COMMAND                  SERVICE             STATUS              PORTS
milvus-etcd         "etcd -advertise-clie..."   etcd                Up (healthy)        2379/tcp, 2380/tcp
milvus-minio        "minio server /minio_..."   minio               Up (healthy)        0.0.0.0:9000->9000/tcp, 0.0.0.0:9001->9001/tcp
milvus-standalone   "/tini -- milvus run ..."   standalone          Up (healthy)        0.0.0.0:19530->19530/tcp, 0.0.0.0:9091->9091/tcp

4. 验证Milvus服务可用性

通过健康检查接口验证服务是否正常:

bash 复制代码
# 检查Milvus健康状态
curl http://localhost:9091/healthz

# 检查MinIO健康状态
curl http://localhost:9000/minio/health/live

# 检查Etcd健康状态
docker exec milvus-etcd etcdctl endpoint health
成功标识
  • Milvus健康检查返回:OK
  • MinIO健康检查返回JSON格式的健康状态
  • Etcd健康检查返回:{"health":"true"}

三、核心配置说明

1. 端口说明

端口 用途 访问方式
9000 MinIO对象存储服务端口 数据存储访问
9001 MinIO控制台端口 浏览器访问http://服务器IP:9001
19530 Milvus核心服务端口 客户端连接向量数据库
9091 Milvus健康检查端口 服务状态监控

2. 数据持久化

volumes目录挂载了3个核心组件的数据目录,确保容器重启后数据不丢失:

  • volumes/etcd:Etcd元数据存储
  • volumes/minio:MinIO向量数据存储
  • volumes/milvus:Milvus运行时数据

3. 关键环境变量

  • ETCD_ENDPOINTS:Milvus连接Etcd的地址(内部网络)
  • MINIO_ADDRESS:Milvus连接MinIO的地址(内部网络)
  • MQ_TYPE: woodpecker:Milvus内置消息队列(单机版无需额外部署MQ)

四、常用运维命令

1. 停止Milvus服务

bash 复制代码
cd ~/milvus
docker compose down

2. 查看Milvus日志

bash 复制代码
# 查看所有组件日志
docker compose logs -f

# 仅查看Milvus核心日志
docker compose logs -f standalone

# 查看Etcd日志
docker compose logs -f etcd

3. 重启Milvus服务

bash 复制代码
cd ~/milvus
docker compose restart

4. 清理Milvus数据(谨慎操作)

bash 复制代码
# 停止服务
docker compose down

# 删除数据目录(会清空所有向量数据)
rm -rf ~/milvus/volumes/*

# 重新启动
docker compose up -d

五、常见问题排查

1. 容器启动后状态为unhealthy

  • 原因:服务启动需要时间(Milvus首次启动约1-2分钟),或资源不足
  • 解决:等待90秒后重新检查,或升级服务器配置(至少2核4G)

2. 端口被占用

  • 查看端口占用:netstat -tulpn | grep 端口号(如netstat -tulpn | grep 19530
  • 解决:修改docker-compose.yml中的端口映射(如19531:19530

3. MinIO控制台登录失败

  • 默认账号密码:minioadmin/minioadmin
  • 若修改过密码,需同步修改docker-compose.yml中的MINIO_ACCESS_KEYMINIO_SECRET_KEY

六、下一步操作

  1. 客户端连接 :可使用Python/Java/Go SDK连接Milvus(地址:服务器IP:19530
  2. 数据操作:创建向量集合、插入向量数据、执行相似性检索
  3. 生产环境优化
    • 调整Etcd/MinIO/Milvus的资源限制(内存、CPU)
    • 配置持久化存储(如挂载云盘)
    • 开启监控(Prometheus + Grafana)

总结

  1. Milvus 2.6.4单机版可通过Docker Compose一键部署,核心依赖Etcd(元数据)、MinIO(数据存储)和Milvus核心服务;
  2. 部署关键是确保Docker环境正常、端口未被占用,启动后通过健康检查接口验证服务可用性;
  3. 数据持久化依赖volumes目录,运维时注意备份该目录以防止数据丢失。

通过本文的步骤,你可以快速搭建一个可用的Milvus向量数据库环境,满足小规模向量检索场景的需求。

相关推荐
逻极2 小时前
深入剖析Docker核心架构:从组件交互到内核原理详解
docker·系统架构·linux内核·devops·容器技术
小陳参上2 小时前
使用Flask快速搭建轻量级Web应用
jvm·数据库·python
赵文宇(温玉)2 小时前
OpenClaw-In-Docker安全、独立、便捷的OpenClaw部署运行方案,已在Github开源
安全·docker·github
fanjinhong_85212 小时前
Docker 镜像与容器关系解析
linux·docker
啥都想学点2 小时前
pikachu靶场——SQL-Inject—3(Kali系统)
数据库·sql
升职佳兴2 小时前
Docker 安装、镜像管理与 Dockerfile 构建实战(openEuler 版)
运维·docker·容器
惊讶的猫2 小时前
influxdb(时序数据库)+mqtt(emqx+mqtt客户端)
数据库·时序数据库
芥子沫2 小时前
提示词管理工具推荐prompt-manage,Docker一键部署和使用指南
docker·容器·prompt·提示词
珠海西格2 小时前
红区之困:分布式光伏爆发背后的“逆流危机”
大数据·运维·服务器·数据库·人工智能·分布式