在 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
相关推荐
weixin_571667412 小时前
Windows 通过 SSH 反向隧道向 Ubuntu 转发代理
linux·运维·windows·代理
事圆则缓2 小时前
Kotlin 集合与序列:给页面一份清楚的数据
开发语言·windows·kotlin
遇印记2 小时前
应用层,网络管理
运维·网络·windows·学习·安全
EterNity_TiMe_3 小时前
Docker服务越装越多记不住端口?我用Fenrus把NAS里的常用入口整理成一个导航页
运维·人工智能·docker·ai·容器·cpolar
吴声子夜歌3 小时前
Docker入门与实战——libnetwork插件化网络功能
网络·docker·容器
漂流瓶jz3 小时前
【AI】大模型参数训练原理:Softmax/损失函数交叉熵/反向传播/梯度下降优化器/学习率调度器/训练数据划分
人工智能·神经网络·llm
今年下半年3 小时前
AI智能体项目实战记录(05):RAG项目实战之向量知识库milvus部署
人工智能·llm·milvus·rag
piaopiaolanghua4 小时前
【Ai】提示词不累积,对话才累积:LLM 中系统、用户、助手与工具的本质差异
llm·上下文
江湖有缘4 小时前
Docker实战 | 使用Docker部署HarborGuard容器安全扫描平台
安全·docker·容器
用户3134672143544 小时前
learn-claude-code笔记3: Permission — 执行前做权限判断
llm·agent