Ollama Docker 部署

2026-10-29 18:40 更新

容器化部署适合两类场景:一是不想污染宿主机的 Python/驱动环境,二是要在多台机器上复现同一套推理服务。官方镜像 ollama/ollama 已经处理好 GPU 库依赖,你要做的只是选对启动参数。

版本基线 v0.40.12,官方 docs.ollama.com/docker。

一、纯 CPU:最简单的一条命令

docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

三个参数各有作用,缺一个都不好用:

参数 作用 缺了会怎样
-d 后台运行 容器占住终端
-v ollama:/root/.ollama 挂一个命名卷存模型 容器一删模型全丢,下次重新下载几十 GB
-p 11434:11434 端口映射到宿主机 宿主机访问不到 API

--name ollama 只是给容器起个好记的名字,方便后面 docker exec。

二、NVIDIA GPU

要点:先装 NVIDIA Container Toolkit,再启动容器。只装显卡驱动是不够的——Docker 默认看不到 GPU。

安装 Container Toolkit(Debian / Ubuntu)

## ① 添加 GPG 密钥
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
    | sudo 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' \
    | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt-get update

## ③ 安装
sudo apt-get install -y nvidia-container-toolkit

RHEL / Fedora 系用 yum:

curl -fsSL https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo \
    | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo

sudo yum install -y nvidia-container-toolkit

让 Docker 用上 NVIDIA 运行时

## 写入 docker 的 runtime 配置
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

这一步做完,--gpus=all 才会生效。

启动带 GPU 的容器

docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

和 CPU 版只差 --gpus=all。

Jetson 设备要额外指定版本:官方说明 Ollama 无法自动识别 JetPack 版本,需要显式传环境变量 JETSON_JETPACK=5 或 JETSON_JETPACK=6。

三、AMD GPU

AMD 卡要用 rocm 标签,并把设备节点透传进容器:

docker run -d --device /dev/kfd --device /dev/dri \
  -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama:rocm

两个 --device 都不能少:/dev/kfd 是 ROCm 的计算接口,/dev/dri 是渲染设备节点。

四、Vulkan:默认就开着

官方镜像里已经打包了 Vulkan 支持,只要容器能访问到 GPU 设备就默认启用:

docker run -d --device /dev/kfd --device /dev/dri \
  -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

两个开关值得记住:

## 关闭 Vulkan(比如你的设备上 Vulkan 表现反而更差)
OLLAMA_VULKAN=0

## 指定使用哪些 Vulkan 设备(索引号)
GGML_VK_VISIBLE_DEVICES=0

对多卡机器,GGML_VK_VISIBLE_DEVICES 是控制用哪张卡的实际手段。

五、跑模型

容器起来后,在容器里执行 ollama 命令即可:

## 拉取并进入对话
docker exec -it ollama ollama run llama3.2

也可以直接在宿主机用 API 调用(端口已映射):

curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt": "Why is the sky blue?",
  "stream": false
}'

更多模型在 ollama.com/library 找。

六、一个能直接用的 compose 配置

docker run 适合快速验证,长期部署建议写进 compose,参数可版本化管理:

services:
  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    restart: unless-stopped
    ports:
      - "11434:11434"
    volumes:
      - ollama-models:/root/.ollama
    # NVIDIA 显卡时启用下面这段
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

volumes:
  ollama-models:

restart: unless-stopped 保证宿主机重启后容器自动回来,这是生产环境和 docker run 最实质的差别。

七、挂了模型卷之后的好处

用命名卷(-v ollama:/root/.ollama)而不是不挂卷,收益比看起来大:

  • 升级镜像不丢模型。docker pull 新版本、删容器重建,模型还在卷里。
  • 多容器共享。同一台机器上跑多个 Ollama 容器可以挂同一个卷(前提是别同时写)。
  • 备份简单。卷就是一个目录,docker run --rm -v ollama:/data -v $(pwd):/backup alpine tar czf /backup/ollama.tgz /data 就能打包。

如果想用宿主机上的具体目录而不是命名卷,把 -v ollama:/root/.ollama 换成 -v /data/ollama:/root/.ollama 即可,注意该目录要让容器内的 root 可写。

八、五个常见坑

容器里看不到 GPU。 90% 是没装 NVIDIA Container Toolkit,或者忘了 nvidia-ctk runtime configure。验证方法:docker run --rm --gpus=all nvidia/cuda:12.0-base nvidia-smi,能打印显卡信息才说明 Docker 配好了。

macOS 上跑 Docker 没有 GPU 加速。 官方明确说明:Docker Desktop for macOS 因为缺乏 GPU 直通,不支持 GPU 加速。Mac 上要 GPU 推理,直接用原生应用(见 7.2 Ollama macOS 安装与部署),别绕 Docker。

端口能通但连不上。 容器内 Ollama 需要监听 0.0.0.0 才能接受外部连接。官方镜像已默认如此,但如果你自己挂载配置或改了启动命令,务必确认没被改回 127.0.0.1。

模型下载慢或失败。 容器内的网络走 Docker 的网络配置,代理设置不会自动继承宿主机。需要出网代理时,用 -e HTTPS_PROXY=... 显式传进容器。

容器一直重启。 先看日志定位,别急着重建:

docker logs ollama

显存不足、卷权限错误、GPU 运行时缺失,日志里都有明确提示。

想看各平台的安装差异,回看 7.1 Ollama Linux 安装与部署、7.2 Ollama macOS 安装与部署、7.3 Ollama Windows 安装与部署。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号