跳至主要内容

Docker Model Runner:轻松在本地运行 AI 模型

了解 Docker Model Runner 如何简化本地 LLM 推理、提升隐私、降低成本,并与现有 Docker 工具无缝集成。
· 15分钟 阅读

使用 AI 探索

随着生成式 AI 不断重塑软件开发,我注意到一个长期存在的难题:在本地运行 AI 模型依然比应有的复杂得多。 

开发者面临割裂的工具链、硬件兼容性问题,以及与日常开发环境脱节的工作流。Docker Model Runner 于 2025 年 4 月发布,旨在解决这些挑战,使您能够在现有 Docker 工作流中更轻松地在本地运行和测试 AI 模型。

Docker Model Runner 标志着从云端 AI 向本地容器化工作流的转变,带来数据隐私、成本降低和更快迭代等优势,同时与Docker 生态系统深度集成。结合我在 AI 部署方面的经验,这些优势对于在控制敏感数据的同时构建可用于生产的应用至关重要。

如果您是 Docker 新手,我建议先学习这门Docker 入门课程。 

什么是 Docker Model Runner?

传统的 AI 模型服务存在多重挑战,我在实践中也深有体会。 

AI 模型包含的数学权重不同于传统 Docker 镜像,无法从压缩中获益。这会在将模型与其运行时一并打包时造成存储低效。此外,配置推理引擎、管理硬件加速、并为模型与应用容器分别维护工具链,都会引入不必要的复杂性。

这正是 Docker Model Runner 发挥作用的地方。它不是再往技术栈里塞一个新工具,而是让您可以直接从 Docker Hub 以符合 OCI(Open Container Initiative)的格式拉取、运行和分发大语言模型(LLM),或者在模型以GPT-Generated Unified Format(GGUF)提供时从 Hugging Face 获取。该平台将模型管理纳入开发者熟悉的容器工作流,从根本上解决了工具碎片化问题。

这里的历史背景也很重要。随着生成式 AI 采用速度加快,业界逐渐转向安全的“本地优先”AI 工作流。组织对数据隐私、API 成本以及云端 AI 服务带来的厂商锁定问题愈发担忧。 

Docker 与 AI 和软件开发领域的多家重量级厂商展开合作,包括 Google、Continue、Dagger、Qualcomm Technologies、Hugging Face、Spring AI 和 VMware Tanzu AI Solutions,认识到开发者需要一种更好的方式在本地使用 AI 模型,同时不牺牲现代开发实践的便利性。

Docker Model Runner 系统要求

在开始使用 Docker Model Runner 之前,我先带您了解需要的系统要求。好消息是,如果您已经在用Docker,那就成功了一半。Docker Model Runner 现已正式发布,适配所有 Docker 版本,支持 macOS、Windows 和 Linux 平台。

虽然 Docker Model Runner 最初仅在 Docker Desktop 上发布,但截至 2025 年 12 月,它已兼容任何支持 Docker Engine 的平台。

不同平台的要求如下:

组件

要求

备注

操作系统

macOS,Windows,Linux

支持所有主流平台

Docker 版本

Docker Desktop 

Docker Engine

macOS/Windows 使用 Desktop

Linux 使用 Engine

内存(RAM)

最低 8 GB

建议 16 GB 及以上

更大的模型需要更多内存

GPU

(可选)

Apple Silicon

NVIDIA

ARM/Qualcomm

可带来 2–3 倍性能提升

Docker Model Runner 系统要求

GPU 加速前提条件

对于 GPU 加速,Docker Model Runner 现已支持多种后端:

  • Apple Silicon(M1/M2/M3/M4):使用 Metal API 进行 GPU 加速,自动配置。

  • NVIDIA GPU:需要 NVIDIA Container Runtime,支持 CUDA 加速。

  • ARM/Qualcomm:兼容设备可用硬件加速。

此外,自 2025 年 10 月起,Docker Model Runner 支持Vulkan,让更多类型的 GPU(包括集成显卡以及来自 AMD、Intel 等厂商的显卡)实现硬件加速。

虽然您也可以仅用 CPU 运行模型,但启用 GPU 支持会显著提升推理性能。简单来说,响应时间可能从 10 秒降到 3 秒。

重要提示:某些llama.cpp 功能在 6xx 系列 GPU 上可能尚未完全支持,未来将补充对 MLX 或 vLLM 等更多引擎的支持。 

Docker Model Runner 技术架构

精彩的部分来了。Docker Model Runner 的架构设计在多个方面打破了传统容器化思维,可能会超出您的预期。下面让我解释它在底层究竟如何运作。

混合式架构

Docker Model Runner 采用混合方案,将 Docker 的编排能力与本机的 AI 推理性能相结合。这一架构的独特之处在于:它从根本上重新思考了 AI 工作负载的运行方式。

与标准 Docker 容器不同,推理引擎实际上并不在容器内运行。相反,推理服务器使用 llama.cpp 作为引擎,以本机进程的方式运行,按需加载模型,并直接在您的硬件上执行推理。

这为什么重要?这种设计让系统可以直接访问 Apple 的 Metal API 进行 GPU 加速,并避免在虚拟机中进行推理带来的性能开销。模型的存储与执行是刻意分离的:模型单独存放,仅在需要时加载到内存中,并在一段时间无活动后卸载。 

模块化组件

接着,我们从更高层面看看这些部分如何协同工作。总体而言,Docker Model Runner 由三个高级组件构成:Model Runner、本模型分发工具,以及模型 CLI 插件。这种模块化架构支持更快的迭代,并在不同关注点之间建立更清晰的 API 边界。 

Docker Model Runner Architecture

Docker Model Runner 架构

除了核心架构外,Docker Model Runner 也考虑到了运维需求。Model Runner 在 /metrics 暴露指标端点,便于您监控模型性能、请求统计与资源使用情况。对于需要了解模型行为与资源消耗的生产部署而言,这种内置可观测性至关重要。

Docker Model Runner 核心特性

当您理解了架构,可能会问:它到底能做什么?下面我来介绍一些让我在 AI 开发工作流中觉得很有吸引力的功能。

以下是亮点能力的快速概览:

功能

收益

适用场景

开源且免费

无授权费用

完全透明

试验

学习

生产使用

Docker CLI 集成

熟悉的命令 

(docker model pull/run/list)

希望零学习成本的 Docker 用户

符合 OCI 的打包

通过注册表进行标准化模型分发

版本控制

访问管理

兼容 OpenAI API

可直接替换云端 API

轻松从云端迁移到本地

沙盒化执行

隔离环境更安全

企业合规要求

GPU 加速

推理速度提升 2–3 倍

实时应用

高吞吐

Docker Model Runner 核心特性

命令行界面可与现有 Docker 工作流无缝衔接。您将使用类似 命令的 docker model pull、docker model run 和 docker model list,遵循与您在使用容器时相同的模式。

Docker Desktop 的图形界面提供引导式上手流程,帮助即便是首次接触 AI 的开发者也能顺畅地开始服务模型,并自动处理 RAM 和 GPU 等可用资源。

Docker Model Hub

Docker Model Hub

模型打包与应用集成

接下来谈谈模型如何打包与分发。Docker Model Runner 支持 OCI 打包的模型,允许您通过任何兼容 OCI 的注册表(包括 Docker Hub)存储与分发模型。标准化的打包方式意味着您可以沿用容器镜像的版本控制、访问控制与分发模式。

在与应用集成方面,REST API 尤其有用。Docker Model Runner 基于 llama.cpp 构建推理引擎,通过熟悉的 OpenAI API 进行访问。 

这种 OpenAI 兼容性意味着,原本为 OpenAI API 编写的代码,只需将应用指向本地端点而非云端 API,即可在本地模型上运行,改动极小。这一灵活性往往能节省数周的重构时间。

设置 Docker Model Runner

下面带您在系统上完成 Docker Model Runner 的安装与配置。安装过程非常直接,但也有一些平台相关的注意事项值得提前了解。

安装 Docker Model Runner

对于 macOS 和 Windows 用户,Docker Model Runner 已包含在 Docker Desktop 4.40 或更高版本中。只需从 Docker 官方网站下载最新版本并安装。安装完成后,您需要在设置中启用 Docker Model Runner。依次前往 Settings > AI,选择 Docker Model Runner 选项;若您的电脑支持 NVIDIA GPU,再选择 GPU-backend 推理。

Docker Model Runner Activation

Docker Model Runner 启用

Linux 用户的体验更为简洁。更新系统后,使用以下命令安装 Docker Model Runner 插件。

sudo apt-get update
sudo apt-get install docker-model-plugin

安装完成后,运行 docker model version 验证是否工作正常。 

配置 Docker Model Runner

如果您使用 Apple Silicon,基于 Metal 的 GPU 加速会自动配置,无需额外设置。对于 NVIDIA GPU,请确保已安装 NVIDIA Container Runtime。 

借助 Vulkan 支持,您现在可以在支持 Vulkan API 的 AMD、Intel 以及其他 GPU 上启用硬件加速。系统会智能检测您的硬件并应用相应加速方式。

安装完成后,下载模型非常简单。先拉取模型,然后运行并与之交互:

docker model pull ai/smollm2
docker model run ai/smollm2

如果一切配置正确,您应能在列表中看到该模型:

docker model list
MODEL NAME                               
ai/smollm2

模型分发与注册表集成

安装好 Docker Model Runner 并了解如何拉取模型之后,自然会问:这些模型来自哪里?如何在规模化场景中管理?这正是 Docker Model Runner 方法优雅之处所在。

Docker 将模型打包为 OCI Artifact,这一开放标准允许通过与容器相同的注册表与工作流进行分发。已使用私有 Docker 注册表的团队可以用同一基础设施来管理 AI 模型。Docker Hub 还提供如注册表访问管理(Registry Access Management)等企业特性,实现基于策略的访问控制。

Hugging Face 集成

与 Hugging Face 的集成尤为值得一提。开发者可以将 Docker Model Runner 用作在 Hugging Face 上运行模型的本地推理引擎,并在 Hugging Face 界面中筛选受支持的模型(需要 GGUF 格式)。这大大简化了模型发现。

docker model pull hf.co/bartowski/Llama-3.2-1B-Instruct-GGUF

更妙的是其底层工作方式。当您从 Hugging Face 拉取 GGUF 格式的模型时,Docker Model Runner 会自动将其即时打包为 OCI Artifact。这种无缝转换免除了手工打包步骤,加速了从模型发现到部署的流程。

Docker Model Runner 中的模型可用性

了解了分发机制之后,接下来就是:到底能运行哪些模型?下面展示开箱可用的模型以及如何发现更多。

Docker Model Runner 提供了经过精选的模型,开箱即用。SmolLM2 是常用之选,适用于聊天助手、文本抽取、改写与摘要任务,包含 3.6 亿参数。由于体积小、推理快,我发现它在开发与测试中尤其好用。

Docker Hub 的 AI 模型目录

若要发现更多模型,我建议从 Docker Hub 的 AI 模型目录入手。浏览可用模型,查看其文档以了解支持的任务与硬件需求,然后通过一个简单的 docker model pull 命令拉取即可。 

模型在首次使用时会从 Docker Hub 拉取并存储到本地,只有在运行时收到请求才会加载到内存中,空闲时会卸载以优化资源。 

这种方式能在您下载了多个模型的情况下依然保持系统响应灵敏。并不会强迫您把所有模型同时留在内存中。

模型量化级别与版本管理

每个模型列表都会包含量化级别的信息(如 Q4_0、Q8_0),它们会影响模型大小与推理质量。

量化级别

描述

文件大小

质量

最佳用途

Q8_0

8 位量化

最大

质量最高

生产使用、对准确性要求高的任务

Q5_0

5 位量化

中等

折中表现良好

通用场景,性能均衡

Q4_0

4 位量化

最小

质量可接受

开发、测试、资源受限环境

模型量化

另一个重要点是模型版本管理。您可以像 Docker 镜像一样使用标签(如 Q4_0 或 latest)指定精确版本。这可确保可复现的部署,并在模型更新时避免意外变化。 

Docker Model Runner 的 API 集成

当您在本地运行好模型后,下一个问题就是:如何与应用连接?当启用宿主机侧 TCP 支持(例如通过 Docker Desktop 的 TCP 设置)后,默认 API 端点运行在 localhost:12434,并暴露兼容 OpenAI 的端点。

Docker Model Runner API Integration

Docker Model Runner API 集成

以下是一个简单的请求示例:

curl http://localhost:12434/engines/llama.cpp/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ai/smollm2",
    "messages": [{"role": "user", "content": "Explain containerization"}],
    "stream": false
  }'

对于微服务架构,您的应用容器可通过标准 HTTP 协议与模型服务通信——无需特殊 SDK。将 "stream": true 设置为真即可支持实时应用的流式响应。

REST API 文档提供完整的端点规范、参数选项与响应模式。鉴于平台仍在快速演进,我建议参考 Docker 官方文档以获取最新API 详情。

优化 Docker Model Runner 性能

要从 Docker Model Runner 中获得最佳性能,需要了解若干关键策略。以下是我在本地模型部署中总结的经验。

借助主机级进程与直接 GPU 访问,Model Runner 相比容器化方案能获得更优的性能优化。此架构决策在吞吐与时延上带来显著收益,但您仍需进行合理调优才能发挥最大效能。

硬件加速是首要的优化手段。启用 GPU 支持通常比纯 CPU 推理带来 2–3 倍的性能提升。除硬件外,模型量化是第二个重要调节杠杆。我通常先用 Q8_0 以获得最佳质量,如需更高性能再降到 Q5_0 或 Q4_0。

内置的 /metrics 指标端点可与 Prometheus 或现有监控栈集成。为扩展性考虑,请根据实际需求配置上下文长度,而非盲目取最大。例如应用只需 2048 个 token 的上下文,就不要配置为 8192。

与 Docker 生态的集成

Docker Model Runner 的一大优势在于与更广泛的 Docker 生态深度集成。 

Docker Model Runner 支持 Docker Compose。这意味着您可以定义一个多服务应用,其中一个服务是 AI 模型,并用熟悉的 Compose 文件管理整个技术栈。示例如下:

services:
  app:
    image: my-app:latest
    models:
      - llm
      - embedding

models:
  llm:
    model: ai/smollm2
  embedding:
    model: ai/embeddinggemma

您还可以自动化 CI/CD 工作流:在测试环境中启动模型、对其运行集成测试、再整体销毁,全部在现有流水线中完成。这能消除 AI 功能的“只在我机器上能跑”的问题。

另一个有趣的集成是Docker Offload,它可在需要时将您的本地工作流延展到云端。尽管仍处于 Beta 阶段,但它允许您在本地使用 Docker Model Runner 开发,当需求超出本地能力时,将计算密集的推理卸载到云端基础设施。

Docker Offload

Docker Offload

还提供以 Helm Chart 与静态 YAML 文件形式在 Kubernetes 中运行的支持。这为需要水平扩展、负载均衡与高可用的生产级部署打开了可能性。 

尽管仍属试验性质,但 Kubernetes 集成展现了 Docker Model Runner 向企业级部署演进的方向——在多副本间每秒处理成千上万请求。

借助 Docker Model Runner 保护数据

面对上述集成选项,您可能会问:安全性如何?Docker Model Runner 运行在隔离、可控的环境中,提供沙盒化以确保安全。这种隔离可阻止模型访问未显式授权的敏感系统资源。

其主要安全收益在于数据隐私。您的推理请求不会离开您的基础设施,从而消除数据外泄风险。对于处理敏感数据的组织而言,本地执行模式对于符合 GDPR、HIPAA 及其他隐私法规至关重要。

管理员可以配置宿主机侧 TCP 支持与 CORS,以实现细粒度的安全控制。注册表中的模型许可元数据可用于合规追踪与审计,满足企业治理需求。

Docker Model Runner vs. Ollama vs. NVIDIA NIM

此时,您也许会想:它与我已在用的工具相比如何?下面是 Docker Model Runner、Ollama 与 NVIDIA NIM 的对比:

特性

Docker Model Runner

Ollama

NVIDIA NIM

性能

比 Ollama 快 1.00–1.12 倍

基线性能

针对 NVIDIA GPU 高度优化

生态集成

原生 Docker 工作流,OCI Artifact

独立工具,单独工作流

容器化,特定于 NVIDIA

模型定制

来自 Docker Hub 的预打包模型

自定义 Modelfile,支持导入 GGUF/Safetensors

仅提供 NVIDIA 优化模型

平台支持

macOS,Windows,Linux 

macOS,Windows,Linux,Docker 

仅限配备 NVIDIA GPU 的 Linux

硬件要求

任意 GPU(Metal、CUDA、Vulkan)或 CPU

任意 GPU 或 CPU

必须是 NVIDIA GPU

社区与 SDK

不断壮大,聚焦 Docker 生态

成熟且广泛

NVIDIA 生态,偏企业级

最佳适用对象

拥有 Docker 基础设施的团队

独立 AI 项目、快速试验

聚焦 NVIDIA 的生产部署

Docker Model Runner 的关键差异点在于生态集成。它将 AI 模型视为与容器同等重要的一等公民,减少以 Docker 为中心的团队的工具扩张。

Ollama 在模型定制与社区/SDK 完备度上更具优势。NVIDIA NIM 则在 NVIDIA GPU 上拥有最高性能,但缺乏其他选项的灵活性与跨平台支持。

Docker Model Runner 故障排查

在结束之前,我们来看看出现问题时该如何处理。

错误:“docker: 'model' is not a docker command”

该错误通常表示 Docker CLI 找不到插件可执行文件。

  • 原因:Docker 无法在预期的 CLI 插件目录中找到该插件。

  • 解决方案:您可能需要为可执行文件创建符号链接(symlink)。请回到安装部分查看具体命令。

模型摘要(digest)问题

目前,使用特定摘要来拉取或引用模型可能会失败。

  • 变通办法:使用标签名(如 model:v1)而非摘要来引用模型。

  • 状态:工程团队正积极开发正确的摘要支持,将在未来版本中提供。

GPU 加速无效

如果模型运行缓慢或未利用 GPU,请按以下步骤检查:

  • 验证驱动:确保宿主机 GPU 驱动为最新版本。

  • 检查权限:确认 Docker 拥有访问 GPU 资源的权限。

  • Linux(NVIDIA):确认已安装并配置 NVIDIA Container Runtime。

  • 验证:运行 nvidia-smi 命令确认系统可识别 GPU。

获取帮助

如果您遇到此处未列出的问题:

  • 提交 Issue:在官方GitHub 仓库报告缺陷或提出功能需求。

  • 社区支持:活跃的社区常能为边缘场景提供快速变通方案。

结语

Docker Model Runner 在提升 AI 开发可达性方面迈出了重要一步。通过将模型管理引入 Docker 生态,它消除了长期以来阻碍 AI 采用的诸多摩擦。

其战略意义不止于便利。在数据隐私、成本控制与开发速度愈发重要的当下,本地 AI 执行日益关键。Docker Model Runner 让开发者能够用日常熟悉的 Docker 命令与工作流,更轻松地试验与构建 AI 应用。

展望未来,该平台将继续演进,增加对更多推理库的支持、更高级的配置选项与分布式部署能力。容器化与 AI 的融合正是行业发展方向,而 Docker Model Runner 立足于这一交汇点,为数以百万计已在使用 Docker 的开发者带来以隐私为先、具成本效益的 AI 开发现实。

现在,您已经在本地 Docker 环境中运行了模型,下一步就是为其构建可靠的流水线。通过 DataCamp 的 MLOps Fundamentals 技能路径,系统掌握模型版本管理、部署与全生命周期管理的原则。

Docker Model Runner 常见问答

什么是 Docker Model Runner?

Docker Model Runner 是一款与 Docker 深度集成的工具,开发者可用熟悉的 Docker 命令与工作流在本地运行、管理和测试 AI 模型。

Docker Model Runner 与 Ollama 或 NVIDIA NIM 有何不同?

与 Ollama 或 NIM 不同,Docker Model Runner 直接集成进 Docker 生态,支持多种 GPU 架构与 OCI 注册表,实现无缝模型分发。

Docker Model Runner 的系统要求是什么?

需要 Docker Desktop 或 Docker Engine,内存至少 8GB(建议 16GB 以获得良好性能),可选配 Apple Silicon(Metal)、NVIDIA(CUDA)或兼容 Vulkan 的 GPU 进行加速。

Docker Model Runner 能与 Hugging Face 模型配合使用吗?

可以。它支持来自 Hugging Face 的 GGUF 格式模型,并会自动将其打包为 OCI Artifact,使本地推理的设置快速而简单。

使用 Docker Model Runner 的关键好处是什么?

它提升数据隐私、降低对云端 API 的依赖、节省成本,并将 AI 模型服务整合进熟悉的 Docker 工作流——非常适合构建以本地为先、安全的 AI 应用的团队。

Benito Martin

作者

Benito Martin

作为 Martin Data Solutions 的创始人兼自由职业数据科学家、ML 与 AI 工程师,我在回归、分类、NLP、LLM、RAG、神经网络、集成方法和计算机视觉等领域拥有多元项目经验。

  • 成功交付多项端到端机器学习项目,覆盖数据清洗、分析、建模与在 AWS 和 GCP 上的部署,提供具备影响力且可扩展的解决方案。
  • 使用 Streamlit 和 Gradio 构建交互式、可扩展的网页应用,服务于不同行业场景。
  • 教授并指导数据科学与数据分析学员,通过个性化学习路径促进其职业成长。
  • 为企业级需求设计检索增强生成(RAG)应用课程内容。
  • 撰写高影响力的 AI 与 ML 技术博客,涵盖 MLOps、向量数据库和 LLM 等主题,并获得显著关注。

在我参与的每个项目中,我都会应用最新的软件工程与 DevOps 实践,如 CI/CD、代码规范检查、格式化、模型监控、实验追踪以及健壮的错误处理。我致力于交付完整的解决方案,将数据洞察转化为切实可行的策略,帮助企业成长,并充分发挥数据科学、机器学习与 AI 的价值。

主题