Ollama is the easiest way to get up and running with large language models such as gpt-oss, Gemma 3, DeepSeek-R1, Qwen3 and more.
基础环境#
- Docker
- Docker Compose
- Traefik【可选】
- NVIDIA-Linux-x86_64-{版本}.run
- container-toolkit
部署步骤#
- 创建
compose.yml文件
mkdir /usr/local/src/ollama
touch /usr/local/src/ollama/compose.yml
- compose.yml文件内容
services:
ollama:
image: ollama/ollama:0.12.9
container_name: ollama
restart: unless-stopped
runtime: nvidia
environment:
# 时区
- TZ=Asia/Shanghai
- NVIDIA_VISIBLE_DEVICES=all
ports:
- "11434:11434"
volumes:
- /usr/local/src/ollama/.ollama:/root/.ollama
networks:
- service
# 资源限制优化:
deploy:
resources:
limits:
memory: 8192m
cpus: "4.0"
networks:
service:
external: true
- 启动容器
docker compose up -d
代理配置【可选】#
labels:
# Traefik 服务发现和路由配置
# 启用 Traefik 对此服务进行发现
- "traefik.enable=true"
# 指定 Traefik 应该监听哪个网络来发现此服务
- "traefik.docker.network=service"
# Router (路由器) 配置
# 定义路由规则:匹配域名 ollama.artoio.com
- "traefik.http.routers.ollama.rule=Host(`ollama.artoio.com`)"
# 指定此路由只监听 'websecure' 入口点(通常是 443 端口)
- "traefik.http.routers.ollama.entrypoints=websecure"
# 为此路由启用 TLS (HTTPS)
- "traefik.http.routers.ollama.tls=true"
# 使用名为 'letsencrypt' 的证书解析器(需要在 Traefik 配置中定义)
- "traefik.http.routers.ollama.tls.certresolver=letsencrypt"
# Service (服务) 配置
# 指定此路由要转发到哪个 Traefik 服务(与下面的服务名一致)
- "traefik.http.routers.ollama.service=ollama"
# ollama 容器内部监听的端口
- "traefik.http.services.ollama.loadbalancer.server.port=11434"
# WAF
- "traefik.http.routers.ollama.middlewares=chaitin@file"
数据持久【强制】#
数据持久将 ollama 数据持久化到 /usr/local/src/ollama/.ollama:/root/.ollama 目录。
volumes:
- /usr/local/src/ollama/.ollama:/root/.ollama



