
0. 前提确认
- 系统 Debian 12,root 登录
- Docker 已装:执行
docker version有输出再继续;没有就跳到第1步先装 - 资源假设:4核 / 总24G / 100G盘,所以容器限 3.5核、12G,模型先从小模型开始
1. (仅当Docker没装)装Docker
apt-get update
apt-get install -y ca-certificates curl gnupg
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list >/dev/null
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl enable --now docker
docker run --rm hello-world
最后出 “Hello from Docker” 即完成。
国内拉镜像慢:可把 Docker 源换成阿里云,或配
/etc/docker/daemon.json的 registry-mirrors,不展开。
2. 建模型目录
mkdir -p /opt/ollama
模型全存在这里,重装容器不丢。
3. 写 compose
新建 /opt/ollama/compose.yml:
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
restart: unless-stopped
ports:
- "127.0.0.1:11434:11434"
environment:
OLLAMA_HOST: "0.0.0.0:11434"
OLLAMA_KEEP_ALIVE: "10m"
OLLAMA_MAX_LOADED_MODELS: "1"
OLLAMA_NUM_PARALLEL: "1"
volumes:
- /opt/ollama:/root/.ollama
deploy:
resources:
limits:
cpus: "3.5"
memory: 12G
logging:
driver: json-file
options:
max-size: "100m"
max-file: "3"
官方 CPU 最简等价于 docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama,上面只是加了限资源、bind 持久化、日志轮转。
4. 启动并验证
cd /opt/ollama
docker compose up -d
docker compose ps
curl -s http://localhost:11434/api/version
第三条返回版本号即服务正常;起不来看 docker logs -f ollama。
5. 拉模型、试跑
小模型先验证(24G内存跑1.5B/3B/7B都轻松):
docker exec -it ollama ollama pull qwen2.5:1.5b
docker exec -it ollama ollama run qwen2.5:1.5b "用一句话介绍Debian"
换其它:
docker exec -it ollama ollama pull llama3.2:3b
docker exec -it ollama ollama pull qwen2.5:7b # Q4约5G,可常驻
宿主机直接打API:
curl -s http://localhost:11434/api/generate -d '{"model":"qwen2.5:1.5b","prompt":"hi","stream":false}'
6. 日常命令
docker exec -it ollama ollama list # 已拉模型
docker exec -it ollama ollama rm 模型名 # 删模型腾盘
du -sh /opt/ollama # 模型占多少
docker compose pull && docker compose up -d # 升级ollama,模型不丢
docker logs -f ollama # 排错
7. 安全(VPS必看)
Ollama 11434 默认无鉴权。上面compose已绑 127.0.0.1,本机/SSH转发可用;别直接改成 0.0.0.0:11434 曝公网。要外网就用SSH端口转发:
ssh -N -L 11434:127.0.0.1:11434 root@你的vps
本地访问 http://127.0.0.1:11434。必须公网开放再单独加Nginx/Caddy反代+Basic Auth/VPN。
8. 有NVIDIA显卡才做(无GPU可忽略)
宿主机装驱动后:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -fsSL 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' | tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
apt-get update
apt-get install -y nvidia-container-toolkit
nvidia-ctk runtime configure --runtime=docker
systemctl restart docker
compose里把 deploy.limits 换成:
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
或临时用:docker run -d --gpus=all -v /opt/ollama:/root/.ollama -p 127.0.0.1:11434:11434 --name ollama ollama/ollama。
AMD显卡用 ollama/ollama:rocm,跑时挂 /dev/kfd /dev/dri,不写进主流程。