|
### 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
```
|
|
|