Milvus 安装记录
### Docker 国内源配置 直连 `registry-1.docker.io` 拉取超时(`net/http: request canceled while waiting for connection`),配置国内镜像加速。 **1. 测试候选镜像源(HTTP 401/200 = 可用)** ```bash for m in docker.m.daocloud.io docker.1panel.live docker.1ms.run hub.rat.dev \ docker.nju.edu.cn mirror.baidubce.com dockerproxy.net; do code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 5 -m 8 "https://$m/v2/" 2>/dev/null) echo "$m -> HTTP $code" done ``` | 镜像源 | 状态 | 结论 | |--------|------|------| | docker.m.daocloud.io | 401 | 可用 | | docker.1panel.live | 200 | 可用 | | docker.1ms.run | 401 | 可用 | | dockerproxy.net | 200 | 可用 | | hub.rat.dev | 302 | 不可用 | | docker.nju.edu.cn | 403 | 不可用 | | mirror.baidubce.com | 000 | 不可用 | **2. 写入 /etc/docker/daemon.json 并重启** ```bash sudo tee /etc/docker/daemon.json > /dev/null <<'EOF' { "registry-mirrors": [ "https://docker.m.daocloud.io", "https://docker.1panel.live", "https://docker.1ms.run", "https://dockerproxy.net" ] } EOF sudo systemctl restart docker ``` **3. 验证生效** ```bash docker info | grep -A6 "Registry Mirrors" ``` 输出包含 4 个镜像源即生效(多源自动降级)。 > 说明:`registry-mirrors` 只加速 docker.io 镜像(milvusdb/milvus、minio/minio);etcd 来自 `quay.io`,本机可直连,若不通可改为 `quay.m.daocloud.io/coreos/etcd:v3.5.25`。
### 启动(Docker Compose Standalone) ```bash cd /wks/app/milvus sudo docker compose up -d ``` 配置国内源后拉取顺利,输出末尾: ```text Container milvus-etcd Started Container milvus-minio Started Container milvus-standalone Started ``` 启动时有一条 WARN:`the attribute 'version' is obsolete, it will be ignored` —— compose v2 已废弃 yml 顶部的 `version:` 字段,删掉该行即可消除,不影响运行。 compose 内三个镜像(v2.6.22 官方 standalone 版): ```yaml image: quay.io/coreos/etcd:v3.5.25 # 元数据 image: minio/minio:RELEASE.2024-12-18T13-15-44Z # 对象存储(内部依赖) image: milvusdb/milvus:v2.6.22 # Milvus 主体 ```
### 验证 **1. 容器状态(三容器均需 healthy)** ```bash sudo docker ps --format "table {{.Names}}\t{{.Status}}" ``` ```text NAMES STATUS milvus-standalone Up 36 seconds (healthy) milvus-minio Up 37 seconds (healthy) milvus-etcd Up 37 seconds (healthy) ``` **2. 服务健康检查** ```bash curl http://127.0.0.1:9091/healthz # -> OK (echo > /dev/tcp/127.0.0.1/19530) && echo "19530 可连接" # gRPC 端口 ``` **3. 项目侧连通性(zsku 的 pymilvus 客户端)** ```bash cd /wks/nlp/zsku/api && python - <<'EOF' import sys; sys.path.insert(0, ".") from app.utils.vector_store.milvus_store import MilvusVectorStore store = MilvusVectorStore(uri="http://127.0.0.1:19530", collection_prefix="zsku") print("项目 pymilvus 连接 Milvus:", "OK" if store.health() else "FAIL") EOF ``` 结果:**OK**。 > 备注:pymilvus 2.x 提示 `connections.*` 为 ORM 风格 API,将在 PyMilvus 3.1 移除(建议迁移 `MilvusClient`)。当前功能正常;若升级 pymilvus 3.x 需同步改造 `milvus_store.py`。
### 常用运维命令 ```bash cd /wks/app/milvus sudo docker compose stop # 停止(数据保留在 volume milvus_data) sudo docker compose start # 再次启动 sudo docker compose down # 删除容器(volume 默认保留) sudo docker compose down -v # 连同数据卷删除(清空全部向量数据) sudo docker logs -f milvus-standalone # Milvus 日志 sudo docker stats --no-stream # 资源占用 ``` 可选:Attu 可视化管理界面(浏览器查看 `zsku_kb_*` 集合): ```bash docker run -d --name attu -p 8000:3000 \ -e MILVUS_URL=127.0.0.1:19530 zilliz/attu:latest ```
### zsku 切换到 Milvus Milvus 就绪后,把 zsku 从内存向量库切到 Milvus: ```bash cd /wks/nlp/zsku/api sed -i 's/^VECTOR_STORE_TYPE=memory/VECTOR_STORE_TYPE=milvus/' .env # 默认 MILVUS_HOST=127.0.0.1 / MILVUS_PORT=19530 / PREFIX=zsku,无需改 # 重启后端(向量库客户端为单例缓存,改配置必须重启) # 已有文档需到「知识库管理 -> 文档 -> 重处理」重建向量(memory 数据不迁移) ``` 验证:上传文档状态到"完成" -> 检索测试命中 -> Attu 中出现 `zsku_kb_{id}` 集合。
## 〇、安装准备(原始记录) - 安装准备 ``` # 安装前置工具 sudo apt update sudo apt install -y ca-certificates curl gnupg # 创建存储密钥的目录并下载 Docker 的 GPG 密钥 sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg # 添加 Docker 软件源到系统 echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 1. 安装 Docker Compose 插件 sudo apt update sudo apt install docker-compose-plugin # 2. 验证安装 docker compose version ``` - 安装 ``` export MILVUS_VERSION=v2.6.22 cd /wks/app mkdir milvus sudo mkdir milvus sudo chown -R xt:xt milvus/ cd milvus/ # 下载适用于 Standalone 的 compose 文件 (以 v2.6.0 为例) wget https://github.com/milvus-io/milvus/releases/download/v2.6.22/milvus-standalone-docker-compose.yml -O docker-compose.yml sudo docker compose up -d ```
参考