mirror of
https://github.com/SeanChang/xuanyuan_docker_proxy.git
synced 2026-10-06 14:43:50 +08:00
286 lines
10 KiB
Markdown
286 lines
10 KiB
Markdown
# Milvus GUI ATTU Docker 容器化部署指南
|
||
|
||

|
||
|
||
*分类: Docker部署教程 | 标签: attu,docker,部署教程 | 发布时间: 2025-12-06 16:05:23*
|
||
|
||
> ATTU是一款全方位的Milvus管理工具(Milvus GUI),旨在简化Milvus向量数据库的管理流程,降低运维成本。通过直观的图形界面,用户可以轻松完成Milvus集群监控、数据管理、向量检索等核心操作。采用Docker容器化部署ATTU,能够显著提升部署效率、确保环境一致性,并简化版本管理流程。本文将详细介绍通过Docker部署ATTU的完整流程,包括环境准备、镜像拉取、容器配置及功能验证等关键步骤。
|
||
|
||
## 概述
|
||
|
||
ATTU是一款全方位的Milvus管理工具(Milvus GUI),旨在简化Milvus向量数据库的管理流程,降低运维成本。通过直观的图形界面,用户可以轻松完成Milvus集群监控、数据管理、向量检索等核心操作。采用Docker容器化部署ATTU,能够显著提升部署效率、确保环境一致性,并简化版本管理流程。本文将详细介绍通过Docker部署ATTU的完整流程,包括环境准备、镜像拉取、容器配置及功能验证等关键步骤。
|
||
|
||
|
||
## 环境准备
|
||
|
||
### Docker环境安装
|
||
|
||
ATTU基于Docker容器化部署,首先需要确保目标服务器已安装Docker环境。推荐使用以下一键安装脚本快速部署Docker:
|
||
|
||
```bash
|
||
bash <(wget -qO- https://xuanyuan.cloud/docker.sh)
|
||
```
|
||
|
||
|
||
备用地址:
|
||
|
||
```bash
|
||
bash <(wget -qO- https://get.xuanyuan.me/docker.sh)
|
||
```
|
||
脚本执行完成后,可通过以下命令验证Docker是否安装成功:
|
||
|
||
```bash
|
||
docker --version # 验证Docker引擎版本
|
||
docker-compose --version # 验证Docker Compose版本(如已安装)
|
||
```
|
||
|
||
|
||
## 镜像准备
|
||
|
||
### 拉取ATTU镜像
|
||
|
||
使用以下命令通过轩辕镜像访问支持地址拉取最新版本的ATTU镜像:
|
||
|
||
```bash
|
||
docker pull xxx.xuanyuan.run/zilliz/attu:latest
|
||
```
|
||
|
||
拉取完成后,可通过以下命令验证镜像是否成功下载:
|
||
|
||
```bash
|
||
docker images | grep zilliz/attu
|
||
```
|
||
|
||
若输出类似以下结果,表明镜像拉取成功:
|
||
```
|
||
xxx.xuanyuan.run/zilliz/attu latest xxxxxxxx 2 weeks ago 500MB
|
||
```
|
||
|
||
|
||
## 容器部署
|
||
|
||
### 基础部署命令
|
||
|
||
ATTU容器部署需指定端口映射及必要的环境变量。以下是基础部署命令,适用于快速启动ATTU服务:
|
||
|
||
```bash
|
||
docker run -d \
|
||
--name attu \
|
||
-p 8000:3000 \
|
||
-e MILVUS_URL={milvus server IP}:19530 \
|
||
-e ATTU_LOG_LEVEL=info \
|
||
xxx.xuanyuan.run/zilliz/attu:latest
|
||
```
|
||
|
||
**参数说明**:
|
||
- `-d`:后台运行容器
|
||
- `--name attu`:指定容器名称为"attu",便于后续管理
|
||
- `-p 8000:3000`:端口映射,将主机8000端口映射到容器3000端口(容器内默认端口为3000)
|
||
- `-e MILVUS_URL`:指定Milvus服务器地址,格式为`{IP}:{PORT}`(默认端口19530),需确保ATTU容器可访问该地址
|
||
- `-e ATTU_LOG_LEVEL`:日志级别,可选值包括debug、info、warn、error,默认info
|
||
|
||
### 高级部署场景
|
||
|
||
#### SSL加密配置
|
||
|
||
若需通过HTTPS访问ATTU,可挂载TLS证书文件并配置相关环境变量:
|
||
|
||
```bash
|
||
docker run -d \
|
||
--name attu \
|
||
-p 443:3000 \
|
||
-v /your-tls-path:/app/tls \
|
||
-e MILVUS_URL={milvus server IP}:19530 \
|
||
-e ATTU_LOG_LEVEL=info \
|
||
-e ROOT_CERT_PATH=/app/tls/ca.pem \
|
||
-e PRIVATE_KEY_PATH=/app/tls/client.key \
|
||
-e CERT_CHAIN_PATH=/app/tls/client.pem \
|
||
-e SERVER_NAME=your-server-name \
|
||
xxx.xuanyuan.run/zilliz/attu:latest
|
||
```
|
||
|
||
**注意**:`/your-tls-path`需替换为本地证书文件存放路径,确保容器内路径`/app/tls`可访问到证书文件。
|
||
|
||
#### 自定义服务端口
|
||
|
||
若需修改容器内服务端口(默认为3000),可通过`SERVER_PORT`环境变量指定:
|
||
|
||
```bash
|
||
docker run -d \
|
||
--name attu \
|
||
-p 8080:8080 \
|
||
-e MILVUS_URL={milvus server IP}:19530 \
|
||
-e SERVER_PORT=8080 \
|
||
xxx.xuanyuan.run/zilliz/attu:latest
|
||
```
|
||
|
||
此命令将容器内服务端口修改为8080,并映射到主机8080端口。
|
||
|
||
### 容器状态验证
|
||
|
||
容器启动后,可通过以下命令检查运行状态:
|
||
|
||
```bash
|
||
# 查看容器运行状态
|
||
docker ps | grep attu
|
||
|
||
# 若容器未正常启动,查看错误日志
|
||
docker logs attu
|
||
```
|
||
|
||
若输出类似以下结果,表明容器已正常运行:
|
||
```
|
||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||
abc123 xxx.xuanyuan.run/zilliz/attu:latest "docker-entrypoint.s…" 5 seconds ago Up 4 seconds 0.0.0.0:8000->3000/tcp attu
|
||
```
|
||
|
||
|
||
## 功能测试
|
||
|
||
### 服务访问验证
|
||
|
||
ATTU服务启动后,可通过浏览器或命令行工具验证访问性:
|
||
|
||
#### 浏览器访问
|
||
|
||
打开本地浏览器,输入`http://{ATTU服务器IP}:8000`(若修改端口,需使用对应端口)。首次访问时,系统将提示连接Milvus服务器,输入正确的Milvus地址后即可进入管理界面。
|
||
|
||
#### 命令行访问测试
|
||
|
||
使用`curl`命令验证服务端口是否正常响应:
|
||
|
||
```bash
|
||
curl -I http://localhost:8000
|
||
```
|
||
|
||
若返回`HTTP/1.1 200 OK`或类似状态码,表明服务可正常访问。
|
||
|
||
### 核心功能验证
|
||
|
||
1. **Milvus连接测试**
|
||
在ATTU登录界面输入Milvus服务器地址(需与部署时`MILVUS_URL`一致),若提示"连接成功",表明ATTU与Milvus通信正常。
|
||
|
||
2. **日志查看**
|
||
通过容器日志验证服务运行状态及操作记录:
|
||
|
||
```bash
|
||
docker logs -f attu # 实时查看日志
|
||
```
|
||
|
||
正常情况下,日志将输出服务启动信息、连接状态及用户操作记录,例如:
|
||
```
|
||
[INFO] Attu server started on port 3000
|
||
[INFO] Successfully connected to Milvus at {milvus server IP}:19530
|
||
```
|
||
|
||
|
||
## 生产环境建议
|
||
|
||
### 持久化存储
|
||
|
||
ATTU默认不持久化存储数据,若需保存配置信息或日志,可挂载本地目录至容器内对应路径:
|
||
|
||
```bash
|
||
docker run -d \
|
||
--name attu \
|
||
-p 8000:3000 \
|
||
-v /path/to/attu/logs:/app/logs \
|
||
-v /path/to/attu/config:/app/config \
|
||
-e MILVUS_URL={milvus server IP}:19530 \
|
||
xxx.xuanyuan.run/zilliz/attu:latest
|
||
```
|
||
|
||
**注意**:需确保本地目录`/path/to/attu/logs`和`/path/to/attu/config`存在且权限正确(建议权限755)。
|
||
|
||
### 资源限制
|
||
|
||
为避免ATTU容器过度占用主机资源,生产环境建议通过`--memory`和`--cpus`参数限制资源使用:
|
||
|
||
```bash
|
||
docker run -d \
|
||
--name attu \
|
||
-p 8000:3000 \
|
||
--memory=2G \ # 限制内存使用为2GB
|
||
--cpus=1 \ # 限制CPU使用为1核
|
||
-e MILVUS_URL={milvus server IP}:19530 \
|
||
xxx.xuanyuan.run/zilliz/attu:latest
|
||
```
|
||
|
||
资源限制值需根据实际业务场景调整,一般建议内存不低于1GB,CPU不低于0.5核。
|
||
|
||
### 高可用配置
|
||
|
||
对于生产环境,建议通过Docker Compose或Kubernetes实现ATTU高可用部署。以下是Docker Compose示例(`docker-compose.yml`):
|
||
|
||
```yaml
|
||
version: '3'
|
||
services:
|
||
attu:
|
||
image: xxx.xuanyuan.run/zilliz/attu:latest
|
||
ports:
|
||
- "8000:3000"
|
||
environment:
|
||
- MILVUS_URL=milvus:19530
|
||
- ATTU_LOG_LEVEL=info
|
||
restart: always # 容器异常退出时自动重启
|
||
depends_on:
|
||
- milvus # 若Milvus也通过Compose部署,可添加依赖关系
|
||
```
|
||
|
||
通过`restart: always`确保服务故障时自动恢复,配合负载均衡器可实现多实例高可用。
|
||
|
||
|
||
## 故障排查
|
||
|
||
### 常见问题及解决方法
|
||
|
||
#### 1. 无法访问ATTU界面
|
||
|
||
**排查步骤**:
|
||
- 检查容器是否运行:`docker ps | grep attu`,若未运行,执行`docker start attu`启动
|
||
- 检查端口映射:`netstat -tlnp | grep 8000`(替换为实际端口),确认主机端口未被占用
|
||
- 检查防火墙规则:确保主机8000端口(或自定义端口)已开放,例如:
|
||
```bash
|
||
# 临时开放端口(CentOS示例)
|
||
firewall-cmd --add-port=8000/tcp --zone=public --permanent
|
||
firewall-cmd --reload
|
||
```
|
||
|
||
#### 2. Milvus连接失败
|
||
|
||
**排查步骤**:
|
||
- **验证Milvus服务状态**:确保Milvus服务器正常运行,可通过`telnet {milvus IP} 19530`测试端口连通性
|
||
- **检查网络可达性**:ATTU容器内执行`ping {milvus IP}`(需进入容器:`docker exec -it attu sh`)
|
||
- **避免使用localhost**:若Milvus与ATTU部署在同一主机,`MILVUS_URL`不可设为`localhost:19530`,需使用主机实际IP(如`192.168.1.100:19530`)
|
||
|
||
#### 3. 容器启动后立即退出
|
||
|
||
**排查步骤**:
|
||
- 查看容器日志:`docker logs attu`,根据错误信息定位问题(如端口冲突、配置错误等)
|
||
- 检查环境变量:确保`MILVUS_URL`格式正确(`IP:PORT`),避免包含协议头(如`http://`)
|
||
|
||
|
||
## 参考资源
|
||
|
||
- [ATTU镜像文档(轩辕)](https://xuanyuan.cloud/r/zilliz/attu)
|
||
- [ATTU镜像标签列表(轩辕)](https://xuanyuan.cloud/r/zilliz/attu/tags)
|
||
- [Milvus官方文档](https://milvus.io/docs)(ATTU配套向量数据库)
|
||
|
||
|
||
## 总结
|
||
|
||
本文详细介绍了ATTU的Docker容器化部署方案,从环境准备、镜像拉取到容器配置、功能验证,提供了完整的操作指南。通过Docker部署ATTU可显著简化安装流程,同时确保环境一致性和版本可控性。
|
||
|
||
**关键要点**:
|
||
- 使用轩辕镜像访问支持可提升ATTU镜像拉取访问表现,优化国内网络环境下的部署体验
|
||
- 容器部署需正确配置`MILVUS_URL`环境变量,确保ATTU与Milvus服务器网络连通
|
||
- 生产环境应考虑持久化存储、资源限制及高可用配置,提升服务稳定性
|
||
- 故障排查优先检查容器状态、端口映射及Milvus连接性,日志是定位问题的关键依据
|
||
|
||
**后续建议**:
|
||
- 参考[Milvus官方文档](https://milvus.io/docs)深入学习ATTU与Milvus的协同使用场景
|
||
- 根据业务负载调整容器资源限制,建议定期监控ATTU服务性能并优化配置
|
||
- 关注[ATTU镜像标签列表](https://xuanyuan.cloud/r/zilliz/attu/tags),及时更新镜像版本以获取最新功能和安全修复
|
||
- 对于大规模部署场景,可探索基于Kubernetes的ATTU容器编排方案,提升管理效率和扩展性
|
||
|