Docker 提供了一种便捷的方式来部署和管理 Ollama。本章介绍 Docker 部署方法。介绍如何使用 Docker 部署 Ollama,包括 CPU 和 GPU 版本的配置。
| 优势 | 说明 |
|---|---|
| 环境一致 | 开发和生产环境相同 |
| 易于部署 | 一条命令完成部署 |
| 隔离运行 | 不影响主机环境 |
| 方便管理 | 易于启动、停止、更新 |
docker pull ollama/ollama
docker run -d \
--name ollama \
-v ollama:/root/.ollama \
-p 11434:11434 \
ollama/ollama
参数说明:
| 参数 | 说明 |
|---|---|
| -d | 后台运行 |
| --name ollama | 容器名称 |
| -v ollama:/root/.ollama | 数据持久化 |
| -p 11434:11434 | 端口映射 |
# 检查容器状态
docker ps
# 测试 API
curl http://localhost:11434/api/version
需要安装 nvidia-container-toolkit:
# Ubuntu/Debian
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://#' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
配置 Docker:
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
运行带 GPU 支持的容器:
docker run -d \
--gpus=all \
--name ollama \
-v ollama:/root/.ollama \
-p 11434:11434 \
ollama/ollama
docker run -d \
--device /dev/kfd \
--device /dev/dri \
--name ollama \
-v ollama:/root/.ollama \
-p 11434:11434 \
ollama/ollama:rocm
docker run -d \
--name ollama \
-v ollama:/root/.ollama \
-p 11434:11434 \
ollama/ollama
docker run -d \
--name ollama \
-v /data/ollama:/root/.ollama \
-p 11434:11434 \
ollama/ollama
# 启动容器
docker start ollama
# 停止容器
docker stop ollama
# 重启容器
docker restart ollama
# 删除容器
docker rm -f ollama
# 查看日志
docker logs ollama
# 实时查看日志
docker logs -f ollama
docker exec -it ollama /bin/bash
# 拉取模型
docker exec -it ollama ollama pull llama3.2
# 运行模型
docker exec -it ollama ollama run llama3.2
# 查看模型列表
docker exec -it ollama ollama list
version: '3.8'
services:
ollama:
image: ollama/ollama
container_name: ollama
restart: unless-stopped
ports:
- "11434:11434"
volumes:
- ollama:/root/.ollama
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
volumes:
ollama:
docker-compose up -d
# 停止
docker-compose down
# 重启
docker-compose restart
# 查看日志
docker-compose logs -f
docker run -d \
--name ollama \
-v ollama:/root/.ollama \
-p 11434:11434 \
-e OLLAMA_HOST=0.0.0.0:11434 \
-e OLLAMA_ORIGINS="*" \
ollama/ollama
常用环境变量:
| 变量 | 说明 |
|---|---|
| OLLAMA_HOST | 监听地址 |
| OLLAMA_ORIGINS | 允许的跨域来源 |
| OLLAMA_MODELS | 模型存储路径 |
| OLLAMA_DEBUG | 调试模式 |
# 创建网络
docker network create ollama-network
# 运行容器
docker run -d \
--name ollama \
--network ollama-network \
-v ollama:/root/.ollama \
-p 11434:11434 \
ollama/ollama
version: '3.8'
services:
ollama:
image: ollama/ollama
ports:
- "11434:11434"
volumes:
- ollama:/root/.ollama
webui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
environment:
- OLLAMA_BASE_URL=http://ollama:11434
depends_on:
- ollama
volumes:
ollama:
# 拉取最新镜像
docker pull ollama/ollama
# 停止并删除旧容器
docker stop ollama
docker rm ollama
# 使用新镜像运行
docker run -d \
--name ollama \
-v ollama:/root/.ollama \
-p 11434:11434 \
ollama/ollama
# 创建备份
docker run --rm \
-v ollama:/data \
-v $(pwd):/backup \
alpine tar czf /backup/ollama-backup.tar.gz /data
# 恢复备份
docker run --rm \
-v ollama:/data \
-v $(pwd):/backup \
alpine tar xzf /backup/ollama-backup.tar.gz -C /
检查日志:
docker logs ollama
确保安装了 nvidia-container-toolkit 并重启了 Docker。
修改端口映射:
docker run -d \
--name ollama \
-p 8080:11434 \
ollama/ollama