目录
用 Docker 运行 Ollama(NVIDIA、AMD GPU 与 Compose)
在服务器上用 Docker 运行 Ollama,便于管理和升级,也可以通过 Compose 与其他服务一起部署。如果你还不熟悉 Docker,可以先看 Docker 教程。
macOS 上的 Docker 无法使用 Apple GPU。在 Mac 上请直接安装 Ollama 应用。
仅使用 CPU
docker run -d --name ollama \
-v ollama:/root/.ollama \
-p 11434:11434 \
ollama/ollama
-v ollama:/root/.ollama:模型保存在名为ollama的 Volume 中,即使重建容器也不会丢失。-p 11434:11434:让主机可以连接 API。
NVIDIA GPU
1. 安装 NVIDIA Container Toolkit
主机需要先安装 NVIDIA 驱动,然后安装 NVIDIA Container Toolkit(以 Ubuntu 为例,详细步骤请参阅 NVIDIA 官方文档):
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
sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
2. 启动容器
docker run -d --name ollama --gpus=all \
-v ollama:/root/.ollama \
-p 11434:11434 \
--restart unless-stopped \
ollama/ollama
确认 GPU 正在使用:
docker exec ollama nvidia-smi
AMD GPU
使用 rocm 版本的镜像,并将设备传入容器:
docker run -d --name ollama \
--device /dev/kfd --device /dev/dri \
-v ollama:/root/.ollama \
-p 11434:11434 \
ollama/ollama:rocm
在容器中使用 Ollama
docker exec -it ollama ollama run qwen3:8b
docker exec ollama ollama pull nomic-embed-text
docker exec ollama ollama list
API 的用法与本机安装相同,地址为 http://localhost:11434。
环境变量
环境变量通过 -e 传入。容器内的 OLLAMA_HOST 默认已设置为 0.0.0.0,因此映射 -p 后,主机就能连接:
docker run -d --gpus=all --name ollama \
-e OLLAMA_CONTEXT_LENGTH=8192 \
-e OLLAMA_KEEP_ALIVE=30m \
-v ollama:/root/.ollama -p 127.0.0.1:11434:11434 \
ollama/ollama
127.0.0.1:11434:11434 只允许本机连接,避免 API 暴露到网络中。
Docker Compose:Ollama + Open WebUI
services:
ollama:
image: ollama/ollama
volumes:
- ollama:/root/.ollama
environment:
OLLAMA_KEEP_ALIVE: 30m
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
restart: unless-stopped
open-webui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
environment:
OLLAMA_BASE_URL: http://ollama:11434
volumes:
- open-webui:/app/backend/data
depends_on:
- ollama
restart: unless-stopped
volumes:
ollama:
open-webui:
docker compose up -d
docker compose exec ollama ollama pull qwen3:8b
打开 http://localhost:3000 即可使用网页界面。Ollama 没有对外开放端口,只有 Open WebUI 能通过 Compose 网络连接它。如果没有 NVIDIA 显卡,删除 deploy 区块即可。
Open WebUI 的用法请参阅 Open WebUI 网页界面。
更新
docker pull ollama/ollama
docker rm -f ollama
# 用原来的 docker run 命令重新创建,模型保存在 Volume 中,无需重新下载
使用 Compose 时:
docker compose pull
docker compose up -d
预下载模型
如果要在容器启动时自动下载模型,可以在部署脚本中添加:
docker exec ollama ollama pull qwen3:8b
或者将模型直接打包到自定义镜像中(镜像会非常大,通常不建议这样做)。
更新于 2026年10月12日