【Ollama】Docker部署Ollama完整指南

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

访问:http://localhost:3000

三、常见问题及解决方案

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相关信息
相关推荐
草木红2 小时前
Docker常用命令
运维·docker·容器
佩洛君2 小时前
Ubuntu22.04系统apt换国内源
linux·运维·ubuntu
七夜zippoe2 小时前
OpenClaw 浏览器自动化实战
运维·chrome·自动化·浏览器·playwright·openclaw
Giggle12182 小时前
从零解构一套校园外卖系统:架构设计、技术选型与核心难点剖析
java·运维·微服务
IT从业者张某某2 小时前
Docker部署伪分布Hadoop
hadoop·docker·容器
淮北4942 小时前
AppImage转变成APP-》ubuntu22.04
运维·服务器
笨手笨脚の2 小时前
云原生部署常见服务
redis·docker·云原生·kubernetes·redis-cluster
D4c-lovetrain2 小时前
Linux个人心得28(OSI 7 层模型全解析)
linux·运维·网络
CORNERSTONE3652 小时前
生产管理六要素(PQCDSM)
大数据·运维·人工智能·生产管理