当前位置: 首页 > news >正文

Ubuntu系统下快速部署Milvus向量数据库的完整指南

1. 环境准备:安装Docker与Docker Compose

在Ubuntu系统上部署Milvus向量数据库之前,我们需要先搭建好Docker环境。Docker就像是一个标准化的集装箱系统,它能让Milvus及其依赖组件以隔离的方式稳定运行。我曾在多个项目中采用这种部署方式,实测下来比直接安装更干净、更容易维护。

首先打开终端,执行以下命令更新软件源(建议使用root用户或sudo权限):

sudo apt update sudo apt-get install -y ca-certificates curl gnupg lsb-release

接下来添加Docker官方GPG密钥和软件源。这里有个小技巧:国内用户可以使用阿里云镜像加速下载:

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

安装Docker引擎时,建议同时安装containerd.io组件以获得完整的容器运行时支持:

sudo apt-get install -y docker-ce docker-ce-cli containerd.io

安装完成后启动Docker服务并设置开机自启:

sudo systemctl start docker sudo systemctl enable docker

验证安装是否成功可以运行:

sudo docker run hello-world

如果看到"Hello from Docker!"的欢迎信息,说明Docker已经准备就绪。

2. 配置Docker Compose环境

Docker Compose是管理多容器应用的神器。它通过YAML文件定义服务关系,一条命令就能启动整个应用栈。我在实际项目中发现,用Compose部署Milvus比手动管理容器要省心十倍。

安装最新版Docker Compose(注意替换版本号):

sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose

创建软链接到系统路径(避免每次输入完整路径):

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

验证安装:

docker-compose --version

正常应该输出类似"docker-compose version 2.23.0"的版本信息。

3. 部署Milvus单机版服务

Milvus官方提供了开箱即用的Docker Compose配置,我们只需要下载对应版本的YAML文件。这里有个重要提示:务必保持Milvus服务端和客户端版本一致,否则会出现兼容性问题。

下载standalone模式的配置文件(以2.3.3版本为例):

wget https://github.com/milvus-io/milvus/releases/download/v2.3.3/milvus-standalone-docker-compose.yml -O docker-compose.yml

启动服务(-d参数表示后台运行):

sudo docker-compose up -d

检查服务状态:

sudo docker ps

正常应该看到三个容器:milvus-standalone、etcd和minio。第一次启动可能需要1-2分钟初始化。

4. 使用Attu可视化工具

Milvus官方推荐的Attu管理工具就像数据库的"驾驶舱",可以直观地查看集合、向量索引和查询性能。我在生产环境用它排查过多次性能问题。

启动Attu容器(注意替换IP地址):

sudo docker run -d -p 8000:3000 -e MILVUS_URL=127.0.0.1:19530 zilliz/attu:v2.3.3

浏览器访问http://服务器IP:8000 即可打开管理界面。如果遇到连接问题,检查以下几点:

  1. 防火墙是否开放8000和19530端口
  2. MILVUS_URL参数是否填写正确
  3. Milvus服务是否正常启动

5. 常见问题排查

部署过程中可能会遇到几个典型问题,这里分享我的解决方案:

问题1:Docker镜像拉取超时修改/etc/docker/daemon.json添加国内镜像加速:

{ "registry-mirrors": ["https://registry.docker-cn.com"] }

然后重启Docker服务:

sudo systemctl restart docker

问题2:端口冲突如果19530端口被占用,可以修改docker-compose.yml中的ports配置:

ports: - "19531:19530"

记得Attu的连接端口也要同步修改。

问题3:存储空间不足Milvus默认使用MinIO存储数据,可以在docker-compose.yml中修改volumes挂载路径:

volumes: - /data/milvus:/var/lib/milvus - /data/minio:/var/lib/minio

6. 性能优化建议

根据我的实战经验,要让Milvus发挥最佳性能,还需要做这些调整:

  1. 资源配置调优编辑docker-compose.yml中的resources部分:
milvus-standalone: deploy: resources: limits: cpus: '4' memory: 8G
  1. 索引参数选择对于千万级向量,IVF_FLAT索引是不错的选择:
index_params = { "metric_type": "L2", "index_type": "IVF_FLAT", "params": {"nlist": 4096} }
  1. 批量插入数据单次插入建议1000-5000条向量,实测比单条插入快20倍以上。

  2. 启用预加载在query节点配置preload_collection可以加速首次查询:

queryNode: preloadCollections: demo_collection

这套部署方案已经在我的多个AI项目中验证过稳定性,包括图像检索系统和推荐引擎。记得定期备份/minio目录下的数据,升级版本前务必先停止服务。如果遇到其他问题,Milvus的GitHub issues区通常能找到解决方案。

http://www.jsqmd.com/news/502496/

相关文章:

  • MDK从armcc切换到armclang编译C++项目的完整避坑指南(附常见错误解决)
  • 戴森吸尘器电池管理固件升级终极方案:开源固件深度解析与实战指南
  • 2026南京假发定制公司推荐榜 精准适配需求 - 资讯焦点
  • Gradle国内镜像源配置全攻略:解决下载慢的终极方案(附常见镜像地址)
  • NEURAL MASK 在物联网(IoT)中的应用:边缘设备图像异常检测
  • 华为交换机日常运维:5个必会的端口状态查询命令(含display interface brief详解)
  • TypeScript 模块
  • 阿里云跨账号VPC对等连接实战:5分钟搞定ECS私网互通(附路由配置截图)
  • 南京假发定制公司排名 专业选品指南 - 资讯焦点
  • 天晨华创:聚焦工程需求 打造专业钢材供应服务体系 - 深度智识库
  • 单向链表的排序
  • (原创)学习资料-多线程相关
  • AI实践(8)Skills技能
  • 专业瓷砖修复公司推荐 行业优质服务商盘点 - 资讯焦点
  • 万象熔炉·丹青幻境Java集成实战:SpringBoot后端智能图像生成服务
  • 欧姆龙CP1H标准程序,一共控制五个伺本体四个+一个轴扩展包 含轴点动,回零,相对与绝对定位...
  • 零门槛Windows和Office激活完整指南:轻松搞定全版本系统激活
  • 深度学习实战:从零构建神经网络模型
  • 【会话:Cookie与Session】Cookie与Session的区别(附对比表)
  • 2026年沙子烘干机厂家推荐:深度解析行业郑州市永大机械! - 深度智识库
  • 突破DAPO算法瓶颈:动态批次生成的优化实践与性能提升
  • DLT:dlt-daemon示例解析2
  • Linux使用信号量sem_timedwait当作定时器
  • 编程语言扩展与驱动交互 - C扩展
  • 【JUC 一】线程 进程 synchronized Lock锁 生产者 消费者 8锁 线程安全集合类...
  • 企业上云如何避坑?2026年主流云主机深度对比与决策指南 - 资讯焦点
  • 深入解析PE内存注入技术:从文件到shellcode的转换机制
  • Python爬虫进阶:自动化采集语音训练数据实战
  • 国内云平台选购指南:主流服务对比与价格解析 - 资讯焦点
  • macOS鼠标滚动优化解决方案:提升效率的平滑滚动技术实现