在 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
相关推荐
是大强8 小时前
Docker中文件修改的三种方法
运维·docker·容器
骑士雄师9 小时前
大模型:MessagesPlaceholder 是什么?
服务器·windows·microsoft
木木子2220 小时前
# 待办事项应用深度解析:ForEach 列表渲染与 CRUD 操作实战
windows·华为·harmonyos
l1t1 天前
在linux和windows中解决duckdb 1.6dev版本输出执行计划报错问题
linux·运维·数据库·windows·duckdb
love530love1 天前
WorkBuddy + 本地 ComfyUI MCP:免订阅费的自建方案
人工智能·windows·mcp·comfy cloud
梦梦代码精1 天前
电商系统不是技术堆叠:LikeShop如何用分层Hold住复杂业务?
java·docker·代码规范
Code_Artist1 天前
Trae AI 创造力大赛创意作品:AI 数字克隆人——让你有无数个分身!
人工智能·llm·aigc
8Qi81 天前
HelloAgents:RAG——让 Agent 学会检索知识
人工智能·llm·agent·ai编程·vibecoding
凌涘1 天前
无状态 LLM 架构深度解析:从 HTTP 协议到上下文工程
llm
云烟成雨TD1 天前
Kubernetes 系列【4】基础概念
云原生·容器·kubernetes