目錄
用 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日