Docker部署Ollama完整指南
一、部署步骤
1. 准备工作
- 确保Docker Desktop已安装并运行
- 创建本地挂载目录:
Z:\Tools\docker\ollama\models - 检查系统资源(推荐至少8GB内存)
- GPU支持:如果需要GPU加速,确保安装了NVIDIA显卡驱动
2. 部署命令
CPU模式
powershell
# 拉取Ollama镜像
docker pull ollama/ollama
# 运行容器(带持久化存储)
docker run -d `
--name ollama `
--restart unless-stopped `
-p 11434:11434 `
-v "Z:\Tools\docker\ollama\models:/root/.ollama" `
-e OLLAMA_HOST=0.0.0.0 `
ollama/ollama
GPU模式
powershell
# 确保已安装NVIDIA Container Toolkit
# 运行容器(启用GPU支持)
docker run -d `
--name ollama `
--restart unless-stopped `
--gpus=all `
-p 11434:11434 `
-v "Z:\Tools\docker\ollama\models:/root/.ollama" `
-e OLLAMA_HOST=0.0.0.0 `
ollama/ollama
3. 模型管理
powershell
# 拉取模型
docker exec -it ollama ollama pull llama3:7b
# 查看已下载模型
docker exec -it ollama ollama list
# 删除模型
docker exec -it ollama ollama rm llama3:7b
二、使用方法
1. API访问
powershell
curl http://localhost:11434/api/generate `
-d '{"model": "llama3:7b", "prompt": "你好,介绍一下自己", "stream": false}'
2. 命令行交互
powershell
docker exec -it ollama ollama run llama3:7b
3. Web界面
powershell
# 安装OpenWebUI
docker run -d -p 3000:8080 --name open-webui ghcr.io/open-webui/open-webui:main
三、常见问题及解决方案
1. 模型消失问题
问题 :容器重启后模型消失
原因 :未正确配置持久化存储
解决方案:
- 确保正确挂载本地目录到容器的
/root/.ollama - 检查目录权限和路径格式
- 重新拉取模型到挂载目录
2. 模型切换
功能 :支持在API请求中指定不同模型
方法 :在请求体中设置"model": "模型名称"
示例:
json
{"model": "llama3:7b", "prompt": "你好", "stream": false}
3. 多模型使用
支持 :可以同时下载和使用多个模型
资源 :根据硬件资源选择合适的模型组合
管理 :使用ollama list查看已安装模型
4. GPU相关问题
问题 :GPU未被识别
解决方案:
- 确保安装了最新的NVIDIA驱动
- 安装NVIDIA Container Toolkit
- 验证Docker是否支持GPU:
docker run --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
四、最佳实践
1. 硬件资源
- CPU模式:至少8GB内存(运行7B模型)
- GPU模式 :
- 推荐NVIDIA显卡,至少4GB显存
- 支持CUDA 11.0+
- 安装最新NVIDIA驱动和Container Toolkit
- 存储:确保本地挂载目录有足够空间(每个模型约5-20GB)
2. 容器管理
- 使用
--restart unless-stopped确保容器自动启动 - 定期更新Ollama镜像:
docker pull ollama/ollama - 监控容器状态:
docker stats ollama
3. 模型选择
- 通用对话:llama3:8b, qwen2.5:7b
- 复杂任务:llama3:70b, qwen2.5:14b
- 代码开发:deepseek-coder:6.7b
- 轻量部署:qwen2.5:3b, gemma:2b
4. 性能优化
- GPU加速:启用GPU模式可显著提升模型推理速度(特别是大模型)
- 对于频繁使用的模型,Ollama会缓存到内存中
- 首次加载模型可能较慢,后续请求会更快
- 根据硬件资源调整模型大小
五、GPU支持详情
1. GPU模式优势
- 速度提升:相比CPU模式,推理速度可提升3-10倍
- 支持更大模型:可以运行更大参数量的模型(如70B模型)
- 更低延迟:生成响应的延迟显著降低
2. NVIDIA Container Toolkit安装
powershell
# 安装NVIDIA Container Toolkit(Windows WSL2)
# 1. 确保WSL2已启用并安装Ubuntu
# 2. 在Ubuntu中执行:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -fsSL https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
3. 验证GPU支持
powershell
# 验证Docker是否支持GPU
docker run --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
# 验证Ollama是否使用GPU
docker exec -it ollama ollama run llama3:7b
# 查看输出中是否有GPU相关信息