Docker部署Ollama 手册

2025-11-12T00:00:00Z | 2分钟阅读 | 更新于 2025-11-12T00:00:00Z

AiEDU
Docker部署Ollama 手册

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,不写进主流程。

© 2023 - 2026 - AiEDU | BLOG

知识改变命运,AI改变知识

关于我

Hi,这里是 AiEDU 的博客。AiEDU 是我在互联网上经常使用的名字。

我是一个热衷于开源的研发工程师,在这里我会记录一些关于技术等知识。欢迎你通过评论或者邮件与我交流。

知识共享(Creative Commons)

此网站的所有内容都遵循 CC BY-NC-SA 4.0

All contents of this website are licensed under CC BY-NC-SA 4.0.

社交链接