简介:本文详细介绍如何在Docker环境中快速部署Ollama框架并安装DeepSeek-R1模型,涵盖环境准备、容器化部署、模型下载与验证等全流程,适合开发者及企业用户快速实现AI模型部署。
在AI技术快速发展的今天,如何高效部署大语言模型(LLM)成为开发者关注的焦点。Ollama作为一款轻量级、高性能的LLM服务框架,结合Docker容器化技术,可实现模型的快速部署与弹性扩展。本文将详细介绍如何在Docker环境中部署Ollama框架,并安装DeepSeek-R1这一开源大模型,为开发者提供一套可复用的技术方案。
# 安装Dockercurl -fsSL https://get.docker.com | shsudo usermod -aG docker $USER # 添加当前用户到docker组# 安装NVIDIA驱动与Container Toolkitsudo apt install nvidia-driver-535 # 根据显卡型号选择版本distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \&& curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \&& curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.listsudo apt update && sudo apt install -y nvidia-docker2sudo systemctl restart docker
wsl --set-version Ubuntu-22.04 2dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /norestart
Ollama官方提供预构建的Docker镜像,支持CPU/GPU双模式:
docker pull ollama/ollama:latest
docker run -d --name ollama-server \-p 3000:3000 \-v ollama-data:/root/.ollama \ollama/ollama
-p 3000:3000:暴露API端口-v:持久化存储模型数据
docker run -d --name ollama-gpu \--gpus all \-p 3000:3000 \-v ollama-data:/root/.ollama \ollama/ollama
--gpus all:启用所有GPU设备
docker exec -it ollama-gpu nvidia-smi
Ollama支持通过命令行直接拉取模型:
# 查询可用模型版本curl http://localhost:3000/api/tags# 下载DeepSeek-R1(以67B参数版本为例)docker exec -it ollama-server ollama pull deepseek-r1:67b
docker logs ollama-server监控
docker exec -it ollama-server ollama run deepseek-r1:67b
输入提示词后,模型应返回结构化响应。
import requestsheaders = {"Content-Type": "application/json"}data = {"model": "deepseek-r1:67b","prompt": "解释量子计算的基本原理","stream": False}response = requests.post("http://localhost:3000/api/chat",headers=headers,json=data)print(response.json()["response"])
--batch参数调整批处理大小
docker exec -it ollama-server ollama serve --batch 16
docker run -d --name ollama-constrained \--memory="120g" \--memory-swap="130g" \ollama/ollama
upstream ollama_servers {server ollama-1:3000;server ollama-2:3000;}server {location / {proxy_pass http://ollama_servers;}}
/api/health端点监控
docker run -d --name ollama-secure \-e OLLAMA_AUTH_TOKEN="your-token" \ollama/ollama
docker network create ollama-netdocker run -d --network ollama-net ...
/metrics端点logrotate规则
/var/lib/docker/volumes/ollama-data/_data/logs/*.log {dailyrotate 7compress}
rm -rf /var/lib/docker/volumes/ollama-data/_data/models/deepseek-r1docker exec -it ollama-server ollama pull deepseek-r1:67b
--batch参数值nvidia-smi topo -m检查NUMA拓扑nvidia-smi -l 1curl -o /dev/null -s -w "%{time_total}\n" http://localhost:3000/api/chat...OLLAMA_NUM_THREADS环境变量将Ollama作为独立服务接入Kubernetes集群:
# ollama-deployment.yamlapiVersion: apps/v1kind: Deploymentmetadata:name: ollamaspec:replicas: 3selector:matchLabels:app: ollamatemplate:metadata:labels:app: ollamaspec:containers:- name: ollamaimage: ollama/ollama:latestports:- containerPort: 3000resources:limits:nvidia.com/gpu: 1
在NVIDIA Jetson设备上部署轻量版:
# 交叉编译ARM64镜像docker buildx build --platform linux/arm64 -t ollama/ollama:arm64 .
通过Docker容器化部署Ollama框架,开发者可实现DeepSeek-R1模型的分钟级部署。本方案具有以下优势:
未来发展方向包括:
建议开发者持续关注Ollama社区更新,及时应用最新优化特性。对于企业级部署,可考虑结合Kubernetes Operator实现自动化运维。