【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相关信息
相关推荐
SelectDB14 小时前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
曲幽20 小时前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
XIAOHEZIcode2 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220703 天前
如何搭建本地yum源(上)
运维
武子康3 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
大树886 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠6 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质6 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工6 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn866 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker