No Data

单容器嵌入式 milvus standalone 完整教程

原创  作者:斩雪碎光阴  发布于:2026年07月20日  阅读量:7
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
  分类:  标签:

# Ubuntu22.04 Docker 单容器嵌入式 Milvus Standalone 完整教程

## 环境说明

- 虚拟机:Ubuntu 22.04 LTS,4核8G

- 已装好 Docker,目标:**embed 单容器 Milvus(内置etcd+本地存储,无需单独minio/etcd容器)**,适合学习 SpringBoot4+JDK21+Ollama 向量检索开发

- Milvus 版本:v2.6(稳定最新版)

- 对外端口:`19530`(SDK连接核心端口)、`9091`(监控/Attu可视化)


## 一、前置检查 & 优化Docker(国内必做,解决拉镜像慢)

### 1.1 确认Docker正常、免sudo

```bash

# 查看docker版本

docker -v

# 把当前用户加入docker组,不用每次sudo

sudo usermod -aG docker $USER

newgrp docker

# 测试无sudo运行

docker run hello-world

```


### 1.2 配置国内Docker镜像加速器(关键,否则拉镜像超时)

```bash

sudo tee /etc/docker/daemon.json <<-'EOF'

{

 "registry-mirrors": [

   "https://docker.xuanyuan.me",

   "https://docker.1ms.run",

   "https://docker.m.daocloud.io"

 ]

}

EOF

# 重启docker生效

sudo systemctl daemon-reload

sudo systemctl restart docker

```


### 1.3 防火墙放行端口(外部Windows主机连Milvus必备)

```bash

# 放行Milvus核心端口

sudo ufw allow 19530/tcp

sudo ufw allow 9091/tcp

# 查看防火墙规则

sudo ufw status

```


## 二、一键安装嵌入式单容器 Milvus Standalone(官方脚本)

### 2.1 下载官方启动脚本(国内CDN加速,解决github raw打不开)

```bash

# 使用jsdelivr CDN下载脚本

curl -sfL https://cdn.jsdelivr.net/gh/milvus-io/milvus/scripts/standalone_embed.sh -o standalone_embed.sh

# 添加执行权限

chmod +x standalone_embed.sh

```


### 2.2 启动 Milvus

```bash

bash standalone_embed.sh start

```

执行逻辑:

1. 自动拉取 `milvusdb/milvus:v2.6.2` 镜像

2. 创建单容器 milvus,内置嵌入式etcd,**无需额外minio/etcd容器**

3. 自动创建本地持久化目录 `./volumes/milvus`(向量数据、元数据都存在这里)

4. 映射端口 `19530:19530`、`9091:9091`

5. 等待90秒左右,输出 `Start successfully.` 代表启动完成


### 2.3 常用管理命令

```bash

# 停止Milvus

bash standalone_embed.sh stop


# 重启Milvus(修改配置后用)

bash standalone_embed.sh restart


# 删除Milvus容器(保留本地数据volumes)

bash standalone_embed.sh delete


# 彻底删除容器+本地所有向量数据(清空测试数据)

bash standalone_embed.sh destroy

```


## 三、验证Milvus是否正常运行

### 3.1 查看容器状态

```bash

docker ps | grep milvus

```

正常输出:容器状态 `Up`,端口19530、9091映射成功。


### 3.2 使用Attu可视化工具连接Milvus(网页管理,推荐)

Attu是Milvus官方WebUI,方便建集合、插入向量、查询、看索引

1. 本地/Windows主机浏览器打开:`http://虚拟机IP:9091/webui`

2. 连接参数:

  - Host:虚拟机IP

  - Port:19530

  - 用户名/密码:默认无,直接连接


### 3.3 Python快速连通测试(可选,验证服务可用性)

```bash

# 安装sdk

pip install pymilvus

```

新建 `test_milvus.py`

```python

from pymilvus import connections

# 替换为你的虚拟机IP

connections.connect(

   alias="default",

   host="192.168.1.100",

   port="19530"

)

print("Milvus连接成功!")

```

运行:`python test_milvus.py`,无报错即服务正常。


## 四、SpringBoot4 连接Milvus关键信息(你后续开发用)

### 连接地址

```

milvus.address=虚拟机IP

milvus.port=19530

```

### Maven依赖(SpringBoot4 + JDK21)

```xml

   io.milvus

   milvus-sdk-java

   2.6.2

```


## 五、目录与配置说明

执行脚本后当前目录生成文件:

1. `volumes/milvus`:**持久化数据目录**,删除容器数据不丢失

2. `user.yaml`:自定义Milvus配置文件,修改后 `restart` 生效

3. `embedEtcd.yaml`:内置etcd配置,一般不用改


## 六、常见踩坑解决(4核8G虚拟机专属)

### 坑1:容器启动几秒就退出 Exited(134)

原因:内存不足/权限不足

```bash

# 给数据目录完整权限

sudo chmod -R 777 ./volumes

# 虚拟机分配内存至少6G,8G推荐关闭其他占用程序

```


### 坑2:外部Windows连不上19530端口

1. 虚拟机防火墙放行端口(前面步骤已做)

2. 虚拟机网络模式改为**桥接模式**,不要NAT仅主机

3. 查看虚拟机IP:`ip a`,用桥接IP连接,不要127.0.0.1


### 坑3:拉镜像超时/失败

确认已配置Docker国内镜像加速器,重启docker后重新执行start脚本。


### 坑4:4核8G运行卡顿

1. 测试阶段向量数据量不要过大(单集合十万以内向量)

2. Ollama、Milvus不要同时满载运行,可分开启动测试


## 七、手动docker run 单容器命令(不想用脚本备用方案)

不想用官方脚本,直接一条命令启动嵌入式Milvus:

```bash

# 创建持久化目录

mkdir -p ~/milvus_data

sudo chmod 777 ~/milvus_data


# 启动单容器embed milvus

docker run -d \

--name milvus-standalone \

--restart unless-stopped \

-p 19530:19530 \

-p 9091:9091 \

-v ~/milvus_data:/var/lib/milvus \

-e ETCD_USE_EMBED=true \

-e DEPLOY_MODE=STANDALONE \

milvusdb/milvus:v2.6.2 milvus run standalone

```


## 八、端口汇总

| 端口  | 用途 | 访问方 |

|-------|------|--------|

| 19530 | gRPC核心端口,SDK/Java/SpringBoot连接 | 你的开发电脑、后端服务 |

| 9091  | Attu WebUI、监控指标 | 浏览器 |


部署完成后,你就可以在SpringBoot4项目中对接Milvus,配合Ollama生成向量存入Milvus做检索学习。

相关文章