在 Windows 本地用 Docker 部署向量模型(bge-m3)

一、启动 Ollama

方案一:PowerShell 续行符

复制代码
docker run -d `
  --name ollama `
  -p 11434:11434 `
  -v ollama:/root/.ollama `
  --restart=always `
  ollama/ollama

方案二:单行执行(推荐)

复制代码
docker run -d --name ollama -p 11434:11434 -v ollama:/root/.ollama --restart=always ollama/ollama

二、确认并拉取模型

第一步:确认模型是否存在

在 CMD 里执行:

复制代码
docker exec ollama ollama list

检查输出中是否有 bge-m3。如果是空的或只有其他模型,请执行下一步。

第二步:拉取模型

复制代码
docker exec ollama ollama pull bge-m3

注意:务必盯紧日志,看到success才算成功。

正常流程如下:

复制代码
pulling manifest
pulling 4c4d9b... 100% ████████████████ 2.2 GB
pulling manifest ok
verifying sha256 ok
success

若拉取卡死或报错,通常是 Docker Desktop 内存不足或网络代理问题。

第三步:验证模型

拉取完成后立即检查:

复制代码
docker exec ollama ollama list

确认看到以下内容:

复制代码
NAME        ID      SIZE    MODIFIED
bge-m3:latest   ...   2.2 GB   ...

低配方案:bge-small-zh-v1.5

若机器内存小于 8GB,请改用 512 维模型:

复制代码
docker exec ollama ollama pull bge-small-zh-v1.5

三、测试向量接口

PowerShell 写法

复制代码
Invoke-RestMethod `
  -Uri "http://localhost:11434/api/embeddings" `
  -Method Post `
  -ContentType "application/json" `
  -Body '{"model":"bge-m3","prompt":"测试向量"}'

CMD 写法

复制代码
curl.exe http://localhost:11434/api/embeddings ^
  -H "Content-Type: application/json" ^
  -d "{""model"":""bge-m3"",""prompt"":""测试向量""}"

四、Windows 环境配置

启用 WSL2

复制代码
wsl --set-default-version 2

Docker Desktop 资源配置

进入 Settings -> Resources -> Advanced:

  • Memory:建议 6GB 以上(bge-m3)或 4GB 以上(bge-small)

  • CPUs:建议 4 核以上

  • 勾选 Use WSL 2 instead of Hyper-V

  • 取消 Windows containers

五、常见问题

模型未找到

复制代码
model "bge-m3" not found, try pulling it first

解决:执行 docker exec ollama ollama list确认模型存在,不存在则重新 pull。

JSON 解析错误

复制代码
invalid character 'm' looking for beginning of object key string

原因:PowerShell 单引号未被解析。

解决:使用上文 Invoke-RestMethod 写法。

拉取模型卡死

解决:进入容器内部拉取,或更换网络环境。

复制代码
docker exec -it ollama ollama pull bge-m3

六、数据说明

  • 模型存储:Docker Named Volume (ollama:/root/.ollama)

  • 物理路径:\wsl$\docker-desktop-data...\volumes\ollama_data

  • 内存占用:模型加载消耗宿主机物理内存,可通过 docker stats ollama 查看

七、服务验证

复制代码
# 检查容器存活
curl.exe http://localhost:11434
# 返回 {} 即正常

# 查看已安装模型
docker exec ollama ollama list
相关推荐
cui_hao_nan9 小时前
Docker学习3
docker·容器
玉&心10 小时前
在Docker中部署前端和后端的实现
运维·docker·容器
wdfk_prog10 小时前
Docker 常用语法与命令:CLI、Dockerfile 与 Compose 速查
运维·docker·容器
C++ 老炮儿的技术栈10 小时前
Qt5 使用 QPainter 绘制阿基米德螺线
开发语言·c++·windows·qt·代码化
无敌糖果10 小时前
K8S network namespace错误分析
docker·容器·kubernetes
郝开11 小时前
Docker Compose 模块化多环境配置规范指南:示例搭建Kibana 9.4.2
docker·容器·kibana
运维老郭11 小时前
Prometheus 监控 K8s 从入门到入坑:工作原理 + 部署实操 + 避坑指南
云原生·容器·kubernetes
今日热点11 小时前
Windows 系统 C 盘深度清理教程:安全释放存储空间,避开误删风险
windows·安全
桃西西呀11 小时前
9月1日起AI图要被标记了,机器怎么一眼认出哪张是 AI 画的?
人工智能·机器学习·llm