> 技术文档 > 【大模型RAG】Docker 一键部署 Milvus 完整攻略_milvus docker部署

【大模型RAG】Docker 一键部署 Milvus 完整攻略_milvus docker部署

本文概要

Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面从环境准备、Docker 安装、容器启动、数据持久化、防火墙与安全组配置到客户端连接与常见故障排查,一步到位地给出完整操作指引,并汇总常见陷阱及修复方案。


1 环境准备

1.1 系统与硬件要求

Milvus 2.5 官方推荐 x86-64/ARM64 的 Ubuntu、CentOS、Debian 等 64 位发行版,并至少 2 GB RAM、10 GB 磁盘;生产环境建议 ≥8 GB RAM 及 SSD 存储。

1.2 安装 Docker Engine 及常用插件 环境并配置腾讯镜像

# 卸载旧版(可选)sudo apt remove docker docker-engine docker.io containerd runc -y# 1. 更新本地 apt 索引,确保使用最新的包列表 sudo apt-get update # Refresh the list of available packages and their versions [oai_citation:0‡bbs.fit2cloud.com](https://bbs.fit2cloud.com/t/topic/5896?utm_source=chatgpt.com) # 2. 安装 HTTPS 传输和下载工具 sudo apt-get install -y ca-certificates curl # 安装 SSL 证书支持(ca-certificates)和网络下载工具(curl) [oai_citation:1‡cloud.tencent.com](https://cloud.tencent.com/developer/article/2439720?utm_source=chatgpt.com) # 3. 创建存放 GPG 公钥的目录 sudo install -m 0755 -d /etc/apt/keyrings # 创建 /etc/apt/keyrings 目录,并设置权限为 0755(用户可读写执行、组和其他可读执行) [oai_citation:2‡cloud.tencent.com](https://cloud.tencent.com/developer/article/2439720?utm_source=chatgpt.com) # 4. 从腾讯云镜像下载 Docker 官方 GPG 公钥 sudo curl -fsSL https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu/gpg \\ -o /etc/apt/keyrings/docker.asc # -f:遇 HTTP 错误时退出;-s:静默模式;-S:显示错误;-L:跟随重定向;将公钥保存到 /etc/apt/keyrings/docker.asc [oai_citation:3‡cloud.tencent.com](https://cloud.tencent.com/developer/article/2297462?utm_source=chatgpt.com) # 5. 赋予公钥文件可读权限 sudo chmod a+r /etc/apt/keyrings/docker.asc # 让所有用户都可读取此公钥,以便 apt 在执行安装时进行签名验证 [oai_citation:4‡cloud.tencent.com](https://cloud.tencent.com/developer/article/2297462?utm_source=chatgpt.com) # 6. 添加腾讯云 Docker APT 仓库 echo \\ \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \\ https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu \\ $(. /etc/os-release && echo \\\"\\$VERSION_CODENAME\\\") stable\" \\ | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # - arch=$(dpkg --print-architecture):自动填入系统架构(如 amd64) # - signed-by:指定使用上述下载的 GPG 公钥验证包签名 # - $(. /etc/os-release && echo \"$VERSION_CODENAME\"):读取 Ubuntu 发行代号(如 jammy) [oai_citation:5‡cloud.tencent.com](https://cloud.tencent.com/developer/article/2297462?utm_source=chatgpt.com) # 7. 刷新 apt 索引以加载腾讯云镜像源 sudo apt-get update # 再次下载所有源的包列表,包括新添加的腾讯云源 [oai_citation:6‡bbs.fit2cloud.com](https://bbs.fit2cloud.com/t/topic/5896?utm_source=chatgpt.com) # 8. 安装 Docker Engine 及常用插件 sudo apt-get install -y \\ docker-ce docker-ce-cli containerd.io \\ docker-buildx-plugin docker-compose-plugin # 一次性安装 Docker 引擎(docker-ce)、命令行工具(docker-ce-cli)、容器运行时(containerd.io)、Buildx 插件和 Compose 插件 [oai_citation:7‡docs.docker.com](https://docs.docker.com/engine/install/ubuntu/?utm_source=chatgpt.com) 

官方文档对 Ubuntu 24.04/22.04/20.04 的步骤完全一致。

 

sudo systemctl start docker 启动 Docker 服务sudo systemctl status docker 查看 Docker 是否正在运行

【大模型RAG】Docker 一键部署 Milvus 完整攻略_milvus docker部署 验证docker:      sudo docker run hello-world

输出如下即正常

【大模型RAG】Docker 一键部署 Milvus 完整攻略_milvus docker部署 


2 安装docker-compose

Ubuntu 和 Debian 系统执行:

sudo apt-get update
sudo apt-get install docker-compose-plugin

【大模型RAG】Docker 一键部署 Milvus 完整攻略_milvus docker部署

验证docker compose : sudo docker compose version  

 【大模型RAG】Docker 一键部署 Milvus 完整攻略_milvus docker部署


2.2 Docker Compose安装Milvus一键编排 

Docker Compose 是 Docker 官方提供的多容器编排工具,将多个服务(如 Milvus、etcd、MinIO)及其依赖通过一个 YAML 文件统一定义和管理。

官方:(可能无法访问)

wget https://github.com/milvus-io/milvus/releases/download/v2.5.1/milvus-standalone-docker-compose.yml -O docker-compose.ymldocker compose up -d

国内镜像:

# 方法一:Gitee 原始文件wget https://gitee.com/milvus-io/milvus/raw/2.5/deployments/docker/standalone/docker-compose.yml \\ -O docker-compose.yml

 即是将官方发布的编排文件 milvus-standalone-docker-compose.yml 下载并保存为 docker-compose.yml。

验证: 有文件即可 【大模型RAG】Docker 一键部署 Milvus 完整攻略_milvus docker部署

一键启动所有服务 

sudo docker compose up -d

•-d 表示后台运行,compose 将根据 docker-compose.yml 启动以下容器:•milvus-etcd(2379/TCP)•milvus-minio(9000/TCP、9001/TCP)•milvus-standalone(19530/TCP gRPC、9091/TCP HTTP/WebUI)
  • 会以守护模式(-d)读取当前目录下的 docker-compose.yml,并一键拉起所有定义的容器实例(包括 Milvus Standalone、etcd(元数据存储)和 minio(对象存储) 等)。

  • 【大模型RAG】Docker 一键部署 Milvus 完整攻略_milvus docker部署

 

查看运行状态

sudo docker compose ps

确认所有服务均为 Up (healthy) 状态。

【大模型RAG】Docker 一键部署 Milvus 完整攻略_milvus docker部署

 


2.3 数据持久化与备份

Milvus 的向量、索引、WAL 默认存于 /var/lib/milvus;映射到主机目录即可持久化。

生产环境可替换为 Ceph / MinIO / S3;官方文档对对象存储路径也有说明。

  • -v $HOME/milvus_data:/var/lib/milvus (启动命令已经包含了)

  • 将容器内部的 /var/lib/milvus 映射到宿主机的 $HOME/milvus_data。

  • 即默认会在当前文件下创建一个volumes 文件夹作为数据存放地址

【大模型RAG】Docker 一键部署 Milvus 完整攻略_milvus docker部署

如何修改宿主机数据存放路径:

【大模型RAG】Docker 一键部署 Milvus 完整攻略_milvus docker部署


3 远程访问与防火墙配置

3.1 开放 Linux 防火墙

UFW(Ubuntu)

sudo ufw allow 19530/tcpsudo ufw allow 9091/tcpsudo ufw reloadsudo ufw status

若部署在云服务器(Alibaba Cloud、AWS、GCP 等),在 安全组 打开相同端口。

我是在云平台,所以可以关闭防火墙,配置安全组就可以了 

【大模型RAG】Docker 一键部署 Milvus 完整攻略_milvus docker部署 

3.2 客户端连通性测试

# Mac / Linux 本地nc -vz  19530nc -vz  9091

端口成功握手后,再使用 SDK 连接。

【大模型RAG】Docker 一键部署 Milvus 完整攻略_milvus docker部署

3.3 Python 代码示例(PyMilvus ≥ 2.5)

from pymilvus import utility, connections# 1. 建立连接connections.connect( alias=\"default\", host=\"REMOTE_IP\", # 远程公网/内网地址 port=\"19530\", secure=False # 如使用 nginx + TLS,可改 True)# 2. 查看健康print(utility.get_server_version()) # 预期输出 v2.5.x# 3. 查看现有集合print(utility.list_collections())# 4. 断连connections.disconnect(\"default\")

官方 Quickstart 教程同样适用,只需把 host 设为远端 IP。

【大模型RAG】Docker 一键部署 Milvus 完整攻略_milvus docker部署


 

4 常见问题与排查

现象

原因

解决

Fail connecting to server on localhost:19530

版本不匹配 / 端口未通

1) 升级 pymilvus ==2.5.* 2) 确认安全组与防火墙已开放

MilvusException(code=2)

Docker 端口未映射或被 SELinux 拦截

1) 确认 -p 参数 2) 关闭或配置 SELinux

WebUI 打不开

端口 9091 未放通 / 旧版无 WebUI

开放 9091 并确保镜像 ≥ v2.5

插入/查询慢

未启用 GPU 或索引未构建

使用 HNSW / IVF 索引,或升级硬件


5 升级与维护

  • 升级镜像:docker pull milvusdb/milvus:v2.5.12 && docker stop milvus25 && docker rm milvus25 && docker run ... (保持数据卷不变即可就地升级)。最新版变更参见 Release Notes。

  • 备份:定期打包 $HOME/milvus_data 或挂载到外置 NFS / S3。

  • 多线程连接:在 Web 服务中,每个线程使用不同的 alias 连接可避免竞争。


 

6 全文流程速查表

步骤

命令 / 操作

安装 Docker

apt install docker-ce ...

拉起 Milvus

docker run -d --name milvus25 -p 19530:19530 -p 9091:9091 -v ~/milvus_data:/var/lib/milvus milvusdb/milvus:v2.5.1

开防火墙

ufw allow 19530/tcp && ufw allow 9091/tcp

本地连接

connections.connect(host=\"REMOTE_IP\", port=\"19530\")

浏览 WebUI

http://REMOTE_IP:9091


参考来源

  • Run Milvus in Docker (Linux) — Milvus 官方文档 milvus.io

  • Run Milvus with Docker Compose (Linux) — Milvus 官方文档 milvus.io

  • Configure Milvus with Docker Compose — Milvus 官方文档 milvus.io

  • Ubuntu UFW 配置指南 — 腾讯云开发者社区 cloud.tencent.com

  • Docker exec 使用教程 — Docker 官方文档 docs.docker.com

  • PyMilvus 快速开始 — Milvus 博客 milvus.io

  • Milvus Standalone 容器启动失败排查 — GitHub Issue github.com

  • Docker CLI Cheat Sheet — Docker 官方文档 docs.docker.com

  • Ubuntu UFW 实战案例 — 腾讯云开发者社区 cloud.tencent.com

  • Docker Compose Exec 指南 — Docker 官方文档 docs.docker.com

尾声

按照以上步骤,你即可在任何 Linux 云主机上 3 分钟内部署 Milvus 2.5 并让本地开发机稳定访问。后续只需关注端口、版本、数据卷三要素,便能避免 99 % 常见坑,安心构建向量检索 + BM25 混合 RAG 生产环境。如有疑问,欢迎在评论区留言交流。祝各位向量搜索一路丝滑 🚀


如果本文对你有帮助,欢迎 点赞评论转发,一起交流 Milvus 部署经验!