【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相关信息
相关推荐
小张成长计划..16 分钟前
【Linux】10:冯·诺依曼体系结构和操作系统
linux·运维·服务器
兔C4 小时前
Linux 命令行入门学习资料 day_2
linux·运维·服务器
枕星而眠5 小时前
【数据结构】红黑树入门指南
运维·数据结构·c++·后端
扶疏5256 小时前
Kubernetes Dashboard、动态卷供应、StatefulSet
容器·kubernetes
snow@li7 小时前
深入理解内核与操作系统的关系
运维·服务器·microsoft
星融元asterfusion8 小时前
高效网卡部署与自动化运维:EasyRoCE Toolkit NC 配置指南
运维·自动化
prettybug1258 小时前
OBS背景音乐_气氛实战指南
运维·服务器
无足鸟ICT9 小时前
【RHCA+】管道符
linux·运维·服务器
老约家的可汗9 小时前
Linux的库制作和原理
linux·运维·服务器
云烟成雨TD9 小时前
Kubernetes 系列【14】对象元数据:标签、标签选择器、命名空间、字段选择器
云原生·容器·kubernetes