一、启动 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



