1. 引言在 RAG检索增强生成项目中向量知识库是核心基础设施之一。它负责将文档切分后的文本块转换为向量并存储供后续检索使用。本篇文章将记录 Milvus 向量数据库的部署过程包括 Docker Compose 编排、服务启动以及通过 Attu 可视化工具验证连接。2. 环境准备在开始部署之前请确保你的机器上已经安装好以下软件Docker 20.10 及以上版本Docker Compose 1.29 及以上版本至少 8GB 可用内存Milvus 运行需要3. Docker Compose 编排文件Milvus 2.5 版本采用分布式架构核心依赖三个组件etcd元数据存储负责记录 Milvus 内部的元数据信息MinIO对象存储用于存放向量数据文件和日志Milvus standaloneMilvus 主服务提供向量检索能力下面是我们使用的docker-compose.yml文件version:3.5services:etcd:container_name:milvus-etcdimage:quay.io/coreos/etcd:v3.5.5environment:-ETCD_AUTO_COMPACTION_MODErevision-ETCD_AUTO_COMPACTION_RETENTION1000-ETCD_QUOTA_BACKEND_BYTES4294967296-ETCD_SNAPSHOT_COUNT50000volumes:-./volumes/etcd:/etcdcommand:etcd-nameetcd-0-data-dir/etcd-listen-client-urlshttp://0.0.0.0:2379-advertise-client-urlshttp://0.0.0.0:2379-listen-peer-urlshttp://0.0.0.0:2380ports:-2379:2379networks:-milvusminio:container_name:milvus-minioimage:minio/minio:latestenvironment:MINIO_ACCESS_KEY:minioadminMINIO_SECRET_KEY:minioadminvolumes:-./volumes/minio:/minio_datacommand:minio server /minio_data--console-address :9001ports:-9000:9000-9001:9001networks:-milvusstandalone:container_name:milvus-standaloneimage:milvusdb/milvus:v2.5.6command:[milvus,run,standalone]environment:ETCD_ENDPOINTS:etcd:2379MINIO_ADDRESS:minio:9000OPENBLAS_NUM_THREADS:1OMP_NUM_THREADS:1volumes:-./volumes/milvus:/var/lib/milvusports:-19530:19530-9091:9091depends_on:-etcd-miniocap_add:-CAP_SYS_RESOURCEulimits:nproc:soft:-1hard:-1nofile:soft:65535hard:65535privileged:truenetworks:-milvusnetworks:milvus:driver:bridge3.1 配置要点说明etcd设置了自动压缩模式为revision保留最近 1000 个版本后端配额设为 4GB避免元数据膨胀。MinIO使用默认账号密码minioadmin/minioadmin控制台端口映射到9001。Milvus standalone通过ETCD_ENDPOINTS和MINIO_ADDRESS指定依赖服务的内部地址privileged: true和ulimits配置是为了满足 Milvus 运行时的资源限制要求。4. 启动服务将上述内容保存为docker-compose.yml然后在同目录下执行dockercompose up-d等待镜像拉取和容器启动完成后查看容器状态dockercomposeps正常情况下三个容器都处于Up状态。Milvus 服务默认监听19530端口这是客户端 SDK 连接时使用的端口。5. Attu 连接测试Attu 是 Milvus 官方提供的可视化数据库管理工具可以方便地查看集合、索引和数据。下面验证 Attu 是否能成功连接 Milvus。windows版本直接安装查看5.1 Linux启动 Attu使用 Docker 启动 Attudockerrun-p8000:3000-eMILVUS_URLhost.docker.internal:19530 zilliz/attu:latest注意host.docker.internal用于从容器内部访问宿主机上的 Milvus 服务。如果你在 Linux 上使用可能需要加上--add-hosthost.docker.internal:host-gateway参数。5.2 连接验证启动成功后浏览器访问http://localhost:8000在连接界面填写地址host.docker.internal:19530或直接填写宿主机 IP如192.168.x.x:19530用户名/密码默认留空即可Milvus 未开启认证时点击「连接」按钮如果看到左侧出现数据库、集合等导航菜单说明连接成功。5.3 常见问题排查如果连接失败按以下顺序排查确认 Milvus 容器状态docker compose ps检查 standalone 是否正常启动。确认端口可达在宿主机执行telnet 127.0.0.1 19530看端口是否开放。确认网络模式Attu 容器内访问宿主机Windows/Mac 用host.docker.internalLinux 需要额外配置host-gateway。查看 Milvus 日志docker logs milvus-standalone检查是否有报错信息。6. 总结本文记录了 Milvus 向量知识库的 Docker Compose 部署过程并验证了 Attu 可视化工具的连接。部署完成后就可以在 RAG 项目中通过 Python SDKpymilvus连接localhost:19530进行向量数据的写入与检索了。下一步我们将记录如何创建集合、构建索引以及实现文档向量的入库流程。