在 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
相关推荐
律宏阔5 小时前
WSL Docker 端口明明空闲,但就是绑不上端口
linux·windows
武子康5 小时前
Agent 能接进 IDE,为什么还不能随意互换?
人工智能·llm·agent
律宏阔5 小时前
Windows 禁用联想笔记本所有 Lenovo 后台服务
windows
律宏阔5 小时前
WSL 突然断网,无法 ping 内网或外网
linux·windows
穷人小水滴5 小时前
用容器编译 VirtualBox 虚拟机软件 (ArchLinux, podman)
linux·容器·virtualbox
武子康5 小时前
ESP32-S3 Mini 和 C3 Mini 怎么买?从 PSRAM、USB 到一张可核对的采购单
人工智能·llm·agent
10年前端老司机5 小时前
RAG 检索效果量化测评落地:完整流程、指标实现与踩坑总结
人工智能·llm·aigc
武子康5 小时前
权重装进了 24 GiB,四路 32K 上下文还装得下吗?
人工智能·llm·agent
Python私教5 小时前
DeepSeek本地部署Ollama+知识库,附3个报错解决
人工智能·llm·deepseek
EatFans5 小时前
Docker 实战部署:从本地镜像到云服务器,一篇走通 FastAPI + Celery + MySQL + Redis + Nginx
docker·fastapi