安装 Milvus Standalone 模式的完整指南及常见问题解决
-
- 引言
- 环境准备
-
- 系统要求
- [配置 Docker 镜像加速器](#配置 Docker 镜像加速器)
- 安装步骤
-
- [1. 下载官方 Standalone 嵌入式启动脚本](#1. 下载官方 Standalone 嵌入式启动脚本)
- [2. 修改镜像标签(v2.6.11 未推送,使用 master 分支最新可用构建)](#2. 修改镜像标签(v2.6.11 未推送,使用 master 分支最新可用构建))
- [3. 创建并设置数据目录权限(最关键步骤,避免权限拒绝)](#3. 创建并设置数据目录权限(最关键步骤,避免权限拒绝))
- [4. 启动 Milvus](#4. 启动 Milvus)
- [5. 验证是否成功](#5. 验证是否成功)
- 常见问题归纳与解决方案
-
- [问题 1:镜像拉取失败(not found / connection refused)](#问题 1:镜像拉取失败(not found / connection refused))
- [问题 2:容器启动后立即退出(Exited 134)](#问题 2:容器启动后立即退出(Exited 134))
- [问题 3:权限拒绝(mkdir /var/lib/milvus/data/: permission denied)](#问题 3:权限拒绝(mkdir /var/lib/milvus/data/: permission denied))
- [问题 4:脚本卡在 "Wait for Milvus Starting..."](#问题 4:脚本卡在 "Wait for Milvus Starting...")
引言
Milvus 是一个开源向量数据库,专为处理大规模向量数据而设计,支持向量相似性搜索、实时查询等功能。Standalone 模式是 Milvus 的单机嵌入式部署方式,适合学习、测试和小规模应用。它使用 Docker 容器运行,嵌入 etcd 作为元数据存储,无需外部依赖。
在实际安装过程中,我遇到了镜像标签不存在、网络连接拒绝、容器权限不足导致启动失败(Exited 134)、脚本卡在等待状态等多个问题。本文基于 2026 年 2 月 24 日在 VMware Ubuntu 虚拟机中的真实安装经验,提供完整步骤,并系统归纳问题及解决方案。宿主机配置为 Intel Core i9-12900H + 16 GB RAM。
环境准备
系统要求
- Ubuntu 20.04 或更高版本(推荐 22.04 LTS)
- Docker 20.10 或更高版本
- 虚拟机最低配置建议:8--12 GB RAM、4--8 vCPU(建议 1 处理器 × 6--8 内核)
- 网络:建议配置国内镜像加速器
配置 Docker 镜像加速器
编辑 /etc/docker/daemon.json:
json
{
"registry-mirrors": [
"https://docker.xuanyuan.me",
"https://mirror.ccs.tencentyun.com",
"https://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
重启 Docker:
bash
sudo systemctl daemon-reload
sudo systemctl restart docker
验证加速器配置:
bash
sudo docker info | grep -A 10 "Registry Mirrors"
安装步骤
1. 下载官方 Standalone 嵌入式启动脚本
bash
wget https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh
chmod +x standalone_embed.sh
2. 修改镜像标签(v2.6.11 未推送,使用 master 分支最新可用构建)
编辑 standalone_embed.sh,找到 docker run 命令中的镜像行,将:
bash
milvusdb/milvus:v2.6.11 \
改为:
bash
milvusdb/milvus:master-20260224-091b147e-amd64 \
或更稳定的前一天版本:
bash
milvusdb/milvus:master-20260223-49bf0b63-amd64 \
保存文件。
3. 创建并设置数据目录权限(最关键步骤,避免权限拒绝)
bash
# 删除旧目录(防止残留错误权限)
rm -rf ./volumes/milvus
# 创建新目录
mkdir -p ./volumes/milvus
# 设置所有者和权限(确保容器内非 root 用户可写)
sudo chown -R $USER:$USER ./volumes/milvus
chmod -R 775 ./volumes/milvus
# 验证权限(应显示 drwxrwxr-x ai-stu ai-stu)
ls -ld ./volumes/milvus
4. 启动 Milvus
bash
bash standalone_embed.sh start
5. 验证是否成功
等待脚本输出 "Start successfully."
检查容器状态:
bash
sudo docker ps
应显示 Up ... (healthy)
测试健康接口:
bash
curl http://localhost:19530/healthz
应返回 "ok"
常见问题归纳与解决方案
问题 1:镜像拉取失败(not found / connection refused)
现象:
Unable to find image ... not found或dial tcp ... connection refused
原因:
- v2.6.11 标签尚未推送至 Docker Hub
- 国内网络对 registry-1.docker.io 访问受限
解决方案:
- 使用 master 分支 dated 构建标签(如
master-20260224-091b147e-amd64) - 配置国内加速器(轩辕、阿里云、网易等)
- 离线传输方式:在可访问网络的机器上 pull + save:
bash
docker pull milvusdb/milvus:master-20260224-091b147e-amd64
docker save -o milvus.tar milvusdb/milvus:master-20260224-091b147e-amd64
gzip milvus.tar
传输到服务器后加载:
bash
gunzip milvus.tar.gz
sudo docker load -i milvus.tar
问题 2:容器启动后立即退出(Exited 134)
现象:
sudo docker ps -a显示Exited (134)
原因:
- SIGABRT 信号,进程内部 abort
- 通常由权限拒绝、初始化失败或内存不足引起
解决方案:
-
查看日志:
bashsudo docker logs milvus-standalone --tail 100 -
增加虚拟机内存到 8--12 GB
-
清理并重新设置权限(见步骤 3)
-
尝试更稳定标签(如
master-20260223-49bf0b63-amd64)
问题 3:权限拒绝(mkdir /var/lib/milvus/data/: permission denied)
现象:
- 日志显示
[FATAL] ... permission denied并 panic
原因:
- 宿主机
./volumes/milvus目录权限不足 - 容器内非 root 用户无法创建子目录
解决方案:
-
必须先删除旧目录:
bashrm -rf ./volumes/milvus -
重新创建并设置权限(步骤 3)
-
推荐使用 775 权限,确保组可写
问题 4:脚本卡在 "Wait for Milvus Starting..."
现象:
- 脚本长时间无输出
原因:
- 容器未达到 healthy 状态(崩溃或健康检查失败)
解决方案:
-
新终端检查状态:
bashsudo docker ps -a -
查看实时日志:
bashsudo docker logs -f milvus-standalone -
手动测试健康接口:
bashcurl http://localhost:19530/healthz -
清理数据卷后重试