前言
作为一名 13 年经验的 Java 全栈开发者,在搭建个人 AI 项目「商助慧」(面向程序员的 AI 写作助手)的过程中,向量数据库 是 RAG 架构的核心基础设施。今天给大家带来纯内网环境下 Milvus 2.3.0 全流程部署方案,包含 Milvus、Etcd、MinIO、Attu 可视化,一次部署,AI 项目核心存储底座直接落地。
一、环境说明
- 服务器:HP 服务器(IP:192.168.18.100)
- 操作系统:Ubuntu 22.04
- 部署方式:Docker + Docker Compose
- 版本:Milvus 2.3.0(稳定生产级)
- 私有仓库地址:192.168.18.100:5000
- 部署目录:/home/xyy/myapp/project/02-AI
- 项目用途:商助慧 v1.1 平台、知识库向量检索、大模型 RAG 架构
二、部署架构
milvus-standalone(19530 端口)
- etcd:元数据存储
- minio:对象存储
- attu(18000 端口):可视化管理平台
- 独立网络,不干扰业务 / 监控服务
三、Docker Compose 配置文件
文件名:docker-compose.yml
yaml
version: '3.5'
services:
etcd:
container_name: milvus-etcd
image: 192.168.18.100:5000/quay.io/coreos/etcd:v3.5.0
command: etcd -advertise-client-urls http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379
volumes:
- ./volumes/etcd:/etcd
restart: always
networks:
- milvus_network
storage:
container_name: milvus-minio
image: 192.168.18.100:5000/minio/minio:RELEASE.2023-03-20T20-16-18Z
environment:
MINIO_ACCESS_KEY: minioadmin
MINIO_SECRET_KEY: minioadmin
command: server /data
volumes:
- ./volumes/minio:/data
restart: always
networks:
- milvus_network
standalone:
container_name: milvus-standalone
image: 192.168.18.100:5000/milvusdb/milvus:v2.3.0
command: ["milvus", "run", "standalone"]
environment:
ETCD_ENDPOINTS: etcd:2379
MINIO_ADDRESS: storage:9000
volumes:
- ./volumes/milvus:/var/lib/milvus
ports:
- "19530:19530"
- "9091:9091"
depends_on:
- "etcd"
- "storage"
restart: always
networks:
- milvus_network
attu:
container_name: milvus-attu
image: 192.168.18.100:5000/zilliz/attu:latest
ports:
- "18000:3000"
environment:
- MILVUS_URL=milvus-standalone:19530
depends_on:
- standalone
restart: always
networks:
- milvus_network
networks:
milvus_network:
driver: bridge
四、完整部署流程(可直接复制执行)
1. 镜像导入与私有仓库推送
bash
运行
# 1. 加载镜像
docker load -i milvus-only-3-images.tar
docker load -i attu.tar
# 2. 打标签
docker tag quay.io/coreos/etcd:v3.5.0 192.168.18.100:5000/quay.io/coreos/etcd:v3.5.0
docker tag minio/minio:RELEASE.2023-03-20T20-16-18Z 192.168.18.100:5000/minio/minio:RELEASE.2023-03-20T20-16-18Z
docker tag milvusdb/milvus:v2.3.0 192.168.18.100:5000/milvusdb/milvus:v2.3.0
docker tag zilliz/attu:latest 192.168.18.100:5000/zilliz/attu:latest
# 3. 推送至私有仓库
docker push 192.168.18.100:5000/quay.io/coreos/etcd:v3.5.0
docker push 192.168.18.100:5000/minio/minio:RELEASE.2023-03-20T20-16-18Z
docker push 192.168.18.100:5000/milvusdb/milvus:v2.3.0
docker push 192.168.18.100:5000/zilliz/attu:latest
2. 一键启动命令
bash
运行
# 进入部署目录
cd /home/xyy/myapp/project/02-AI
# 启动服务
docker-compose up -d
# 停止服务
docker-compose down
# 查看运行状态
docker ps | grep milvus
五、访问地址与连接配置
1. 访问地址
- Milvus 向量数据库:
192.168.18.100:19530 - Attu 可视化管理平台:
http://192.168.18.100:18000


2. Attu 连接配置
表格
| 配置项 | 填写内容 |
|---|---|
| Milvus 地址 | 192.168.18.100:19530 |
| 数据库 | default |
| 用户名 | 空 |
| 密码 | 空 |
| 启用 SSL | 关闭 |
六、端口清单
表格
| 端口 | 用途 |
|---|---|
| 19530 | Milvus 向量数据库服务 |
| 9091 | Milvus 监控端口 |
| 18000 | Attu 可视化管理平台(避开业务 8080 端口冲突) |
七、DevOps 运维命令
bash
运行
# 查看Milvus日志
docker logs -f milvus-standalone
# 查看Attu日志
docker logs -f milvus-attu
# 重启服务
docker-compose restart
# 查看容器状态
docker-compose ps
八、常见问题与解决方案
8.1 Milvus 无限重启
原因 :启动命令缺少run参数。解决:
yaml
command: ["milvus", "run", "standalone"]
8.2 Attu 无法连接 Milvus
解决:
- 取消勾选「启用 SSL」
- 使用服务器真实 IP:192.168.18.100:19530
8.3 端口冲突
解决:业务已占用 8080/8081/8082,Attu 改为 18000 端口,避免冲突。
8.4 容器间网络不通
解决 :所有服务统一使用milvus_network网桥,自动互通。
九、项目价值(DevOps 亮点)
- 纯内网环境部署,无外网依赖,安全稳定
- 基础设施即代码,一键部署、可复现、可迁移
- 企业级单机稳定架构,适合 AI 项目生产使用
- Attu 可视化管理平台,降低运维与使用成本
- 完美适配 RAG、知识库、大模型向量检索场景
- 可无缝对接 SpringBoot / Python AI 服务,为「商助慧」AI 写作助手提供核心存储底座
- 三层架构完全隔离(业务 / 监控 / AI),企业级标准
十、总结
Milvus 向量数据库是 AI 大模型 RAG 架构的核心基础设施,尤其是在个人 AI 项目「商助慧」的开发中,其价值不言而喻。本文基于真实生产环境,提供了一套纯内网、可直接复制执行的全流程部署方案,帮助开发者快速搭建 AI 项目核心存储底座,为后续知识库、大模型服务部署做铺垫。
后续将持续更新「技术底稿」系列,包括多节点集群、K3s、AI 项目开发等实战内容,欢迎持续关注!
📚 系列导航:
【技术底稿】01:37岁老码农,用4台机器搭了套个人DevOps平台
【产品底稿01】37 岁 Java 老码农,用 Java 搭了个 AI 写作助手,把自己 14 年技术文章全喂给了 AI!