Docke种使用GPU运行Ollama

环境安装

此处使用设备 Tesla P40 + Debian 12为例

显卡驱动:下载 NVIDIA 官方驱动 | NVIDIA
CUDA Toolkit: CUDA Toolkit Archive | NVIDIA Developer
![[Docke种使用GPU运行Ollama/IMG-20251216153018642.png]]
注意CUDA版本对应,否则可能会导致CUDA在容器内无法运行

1
2
3
4
5
6
7
8
9
10
11
12
13
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt-get update

export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.18.1-1
sudo apt-get install -y \
nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}
  • 禁用 nouveau
    参考[[../Linux/Ubuntu禁用Nouveau驱动|Ubuntu禁用Nouveau驱动]]

  • 验证环境是否安装成功

    1
    docker run --rm --gpus all nvidia/cuda:12.2.0-runtime-ubuntu22.04 nvidia-smi

![[Docke种使用GPU运行Ollama/IMG-20251216162702335.png]]

直接运行Docker容器

1. 运行Ollama容器

1
docker run --gpus=all -d -e OLLAMA_MODEL:qwen2.5-coder:7b -e OLLAMA_ENV:production -v=qwen-coder:/root/.ollama -p 11437:11434 --name qwen-coder -d ollama/ollama:latest

2. 拉取模型并运行

1
ollama run qwen2.5-coder:7b

使用Docker Compose

1. 创建docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
services:
ollama:
container_name: qwen2.5-coder-7b
image: ollama/ollama:latest
ports:
- 11434:11431
volumes:
- ./data:/root/.ollama
deploy:
resources:
devices:
- driver: nvidia
capabilities: ["gpu"]
environment:
OLLAMA_MODEL: "qwen2.5-coder:7b"
restart: unless-stopped

2. 启动服务

docker-compose.yml所在目录运行以下命令:

1
docker-compose up -d

验证是否使用GPU启动Ollama

1
2
docker exec -it <ollama容器ID> bash # 进入已启动的容器
ollama ps

如果PROCESSOR中显示为GPU则启动成功
![[Docke种使用GPU运行Ollama/IMG-20251216163203208.png]]

注意事项

  • 使用_nvidia-smi_确认GPU是否被正确利用。
  • 如果仅需CPU支持,可移除_–gpus=all_或相关配置。
  • GPU模式下性能显著提升,但需确保驱动和CUDA版本兼容。