跳转到主要内容
PromptQuorum为人类设计。 为AI结构化。
主页/本地LLM进阶
Overview & Reference

Docker Model Runner评测:通过Docker CLI运行本地LLM

·阅读约11分钟Hans Kuepper 作者 · PromptQuorum创始人 · 开放权重与开源AI发现引擎

Docker Model Runner是Docker Desktop和Docker Engine的一项功能,而非独立下载的应用,可通过docker model CLI命令拉取并运行大语言模型。 本地推理通过llama.cpp(CPU与Apple Silicon)或vLLM(NVIDIA GPU,面向更高吞吐量的服务场景)完成——而大多数评测都忽略的一个细节是:该推理引擎以原生宿主进程的方式运行,而非在容器内运行,因此可以直接访问GPU硬件,而不必经过容器隔离层。Docker Model Runner暴露兼容OpenAI的API,并作为Docker Desktop的一部分免费提供;Docker Desktop本身是否免费则取决于你所在组织的规模(见下文定价)。

关键要点

  • 内置于Docker Desktop(macOS、Windows)和Docker Engine(Linux)——无需单独下载
  • 本地推理引擎为面向CPU/Apple Silicon的llama.cpp,或面向NVIDIA GPU服务场景的vLLM
  • 以原生宿主进程运行,在容器运行时之外,可直接访问GPU
  • CLI命令:docker model pull <模型>、docker model run <模型>、docker model list
  • 在宿主机上通过http://localhost:12434/engines/v1,或在其他容器内通过http://model-runner.docker.internal/engines/v1提供兼容OpenAI的API
  • 模型来源于Docker Hub精选AI目录、其他兼容OCI的镜像仓库,或Hugging Face
  • 无额外费用——该功能随Docker Desktop提供;Docker Desktop本身是否需要付费订阅取决于企业规模

📍 简单一句话

Docker Model Runner是内置于Docker Desktop和Docker Engine的功能,通过docker model CLI命令在本地运行LLM,以llama.cpp或vLLM作为原生宿主进程的推理引擎,并暴露兼容OpenAI的API。

💬 简单来说

如果你已经用Docker运行容器,Docker Model Runner可以让你以同样的方式——docker model pull和docker model run——拉取并运行AI模型,无需安装单独的聊天应用,而且模型本身并不在容器内运行。

Docker Model Runner是内置于Docker Desktop和Docker Engine中的功能,通过docker model CLI命令在本地运行大语言模型,底层由llama.cpp或vLLM提供支持,并通过兼容OpenAI的API对外暴露。它不是一个独立应用,而是添加到Docker Desktop中的一项功能,因此随大多数开发者已经安装的Docker Desktop免费提供。本评测介绍Docker Model Runner的实际功能、如何在不将推理放入容器的情况下运行模型、如何安装与使用,以及它相对于Ollama、llama.cpp等其他本地运行时工具的定位。

Docker Model Runner评测:通过Docker CLI运行本地LLM

Docker Model Runner是什么?

Docker Model Runner是Docker Desktop和Docker Engine的一项功能,用于在本地拉取并运行大语言模型,使用的正是开发者已经用于容器的同一套docker CLI。根据Docker官方产品页面,它提供本地优先的推理能力,并配有兼容OpenAI的API,可从Docker Hub、其他兼容OCI的镜像仓库或Hugging Face拉取模型。它不是带图形窗口的聊天应用——而是一项CLI功能加本地推理服务器,设计用于从终端、Docker Compose,或调用其API的代码中使用。

  • 内置于Docker Desktop(macOS、Windows)中,并在Linux上作为Docker Engine的docker-model-plugin软件包提供——没有单独的安装程序
  • 本地推理引擎:面向CPU和Apple Silicon的llama.cpp,面向NVIDIA GPU服务场景的vLLM,根据Docker文档
  • 模型来源:Docker Hub精选AI模型目录、任意兼容OCI的镜像仓库,或Hugging Face
  • 与开发者围绕Docker已经使用的工具集成:Docker Compose、Testcontainers,以及通过兼容OpenAI的API集成LangChain、Spring AI、Open WebUI等框架
  • 开发方:Docker, Inc.

安装与快速上手

Docker Model Runner是内置于Docker Desktop和Docker Engine中的CLI功能,而不是独立下载的应用,因此没有单独的安装程序或下载按钮——你安装Docker Desktop(或在Linux上安装Docker Engine加model-runner插件),docker model命令就会随之可用。

  1. 1
    在macOS或Windows上安装Docker Desktop,或在Linux上安装Docker Engine加model-runner插件(Debian/Ubuntu执行sudo apt-get install docker-model-plugin,Fedora/RHEL执行sudo dnf install docker-model-plugin)。
  2. 2
    如果Model Runner尚未启用,启用它:docker desktop enable model-runner(Docker Desktop),或确认该插件已在Docker Engine上启用。
  3. 3
    从Docker Hub的AI目录拉取模型:docker model pull ai/smollm2:360M-Q4_K_M。
  4. 4
    直接从命令行运行:docker model run ai/smollm2:360M-Q4_K_M "Give me a fact about whales."
  5. 5
    随时用docker model list查看已在本地拉取的模型。
  6. 6
    如果想通过HTTP而非CLI访问模型,可使用兼容OpenAI的API——具体端点见下文兼容OpenAI的API。

为什么它以宿主进程运行,而非在容器内

尽管命令前缀是docker,Docker Model Runner并不会在容器内运行模型推理。 Docker官方推出该功能的博客文章对此说得很明确:运行docker model run"不会启动任何容器"。相反,该命令会调用一个由Model Runner通过Docker Desktop托管的推理服务器API,而这个推理服务器会将其推理引擎(llama.cpp或vLLM)作为原生宿主进程运行——这是一个直接运行在你操作系统上的普通进程,就像其他任何本地安装的程序一样。

  • 官方给出的原因是GPU访问:原生宿主进程可以直接使用机器的GPU(Apple Silicon的集成GPU,或NVIDIA GPU),无需经过容器到宿主机的GPU直通这一额外间接层
  • 这是出于性能考虑的有意架构选择,而不是Docker容器运行时的局限——Docker Model Runner在工作流的其他环节仍会使用容器(例如部分模型打包基于OCI),只是推理进程本身不使用容器
  • 实际效果是,一个正在运行的模型的行为更像你机器上的一个后台服务,而不像可以用docker ps检查的容器
  • 模型会一直驻留在内存中,直到请求了另一个模型或经过一段空闲时间,因此启动后的第一次请求会比之后的请求慢

llama.cpp vs. vLLM:哪个引擎在运行你的模型

Docker Model Runner并未实现自己的推理引擎——它封装了两个现有的开源引擎,并根据你的硬件和模型格式在两者之间做出选择,根据Docker文档。

llama.cpp

适用场景:
本地开发、资源高效的推理
模型格式:
GGUF(量化)
支持平台:
CPU和Apple Silicon;此外还有部分Windows/Linux GPU后端
关于llama.cpp的文章(10篇)

另有172篇未显示

vLLM

适用场景:
面向生产环境、更高吞吐量的服务
模型格式:
Safetensors
支持平台:
搭载NVIDIA GPU的Linux和Windows(WSL2)
关于vLLM的文章(10篇)

另有89篇未显示

这与本站llama.cpp深度解析中详细介绍的引擎是同一个llama.cpp,也与vLLM深度解析中介绍的引擎是同一个vLLM——Docker Model Runner是构建在这些引擎之上的打包与CLI层,而不是从零重造的替代方案。Docker还记录了在搭载NVIDIA GPU的Linux上对图像生成模型(Stable Diffusion)的实验性Diffusers支持,这超出了本篇以LLM为重点的评测范围。

兼容OpenAI的API

根据Docker关于该功能的博客文章,Docker Model Runner暴露了一个兼容OpenAI的HTTP API,使现有的OpenAI客户端代码可以指向本地模型,而不是云端端点。

  • 从宿主机访问:http://localhost:12434/engines/v1(需先通过docker desktop enable model-runner --tcp 12434启用一次TCP访问)
  • 从同一Docker网络中的其他容器访问:http://model-runner.docker.internal/engines/v1
  • 根据Docker自身给出的集成示例,兼容已经为OpenAI API格式构建的工具和框架,包括LangChain、Spring AI和Open WebUI
  • 模型在请求到达时按需加载,并会一直驻留内存,直到请求了另一个模型或经过空闲超时

支持的平台

根据Docker文档,Docker Model Runner的硬件支持因操作系统和所用推理引擎而异。

macOS

详情:
Apple Silicon,通过llama.cpp实现原生GPU加速

Windows

详情:
搭载NVIDIA GPU的AMD64(驱动576.57或更新)可用llama.cpp或vLLM(WSL2);搭载Qualcomm Adreno 6xx系列GPU的ARM64可用llama.cpp

Linux

详情:
通过llama.cpp支持纯CPU、NVIDIA CUDA、AMD ROCm或Vulkan后端;通过vLLM支持NVIDIA GPU(驱动575.57.08或更新)

具体的最低驱动版本和支持的GPU系列会随Docker对该功能的更新而变化——在围绕特定GPU规划部署之前,请到docs.docker.com/ai/model-runner确认当前要求。

Docker Model Runner定价

Docker Model Runner本身不产生任何额外费用——它是Docker Desktop和Docker Engine自带的功能。 你是否需要付费,完全取决于你对Docker Desktop的使用是否符合Docker自身订阅服务协议中的免费条件。

Personal(免费)

适用对象:
个人用户、教育用途、非商业开源项目,以及员工少于250人且年收入低于1000万美元的企业
是否包含Docker Model Runner?:
是

Pro / Team / Business(付费)

适用对象:
更大规模的企业,或需要超出免费方案范围的团队功能的组织
是否包含Docker Model Runner?:
是

无论订阅方案如何,Docker Hub精选的AI模型均可免费拉取。Docker的付费方案(Pro、Team、Business)增加的是与Model Runner本身无关的功能,例如团队席位和集中管理——具体价格请查看docker.com/pricing,这些价格会独立于Model Runner功能本身而变动。

谁适合使用Docker Model Runner?

Docker Model Runner适合一种特定的工作流:已经深度使用Docker、希望加入本地LLM推理而不想再给技术栈添加第二个工具的开发者。

以下情况适合使用Docker Model Runner

  • 你已经每天使用Docker Desktop或Docker Engine,希望在同一套CLI中加入本地LLM推理,而不再安装单独的应用
  • 你的应用或服务已经围绕Docker Compose或容器构建,并希望通过model-runner.docker.internal让其他容器可以访问模型端点
  • 你希望能够在不更换工具的情况下,从CPU/Apple Silicon开发(llama.cpp)过渡到NVIDIA GPU生产服务(vLLM)
  • 你更习惯通过终端和HTTP API工作,而不是图形化的聊天窗口

以下情况建议再等等,或考虑其他方案

  • 你希望以图形化的点选式聊天界面作为与模型对话的主要方式——Docker Model Runner没有内置聊天窗口;如果需要,可以搭配Open WebUI等前端使用
  • 你还没有使用Docker,也不想仅仅为了运行本地模型而安装Docker Desktop——在这种情况下,Jan或GPT4All等专用应用体积更小、更合适
  • 出于隔离方面的考虑,你需要推理进程严格运行在容器内——出于GPU性能考虑,Docker Model Runner有意将其引擎作为宿主进程而非容器运行(见上文为什么它以宿主进程运行)
  • 你所在的组织超过了250名员工/1000万美元收入的免费使用门槛,且尚未为付费Docker订阅做预算——请先确认你的Docker许可状态

竞品与替代方案

Docker Model Runner属于本地推理运行时这一细分领域,与封装同类底层引擎的CLI优先型引擎和桌面应用并列。完整目录见本地LLM软件目录。

  • llama.cpp — Docker Model Runner自身在CPU/Apple Silicon上使用的推理引擎;直接使用它可以获得Docker封装层未开放的构建参数和量化控制权。
  • vLLM — Docker Model Runner在生产工作负载中使用的同一款GPU服务引擎;如果你需要vLLM完整的配置能力,而不满足于Docker简化过的CLI,直接使用它会更合适。
  • Ollama — 最接近的"一条命令"对比对象:与Docker Model Runner类似,Ollama也在简单的pull-and-run CLI和兼容OpenAI的API背后封装了llama.cpp,但它是一个独立工具,而非Docker Desktop的功能——如果你还没有使用Docker,它会更合适。
  • Jan — 一款基于同一款llama.cpp引擎、带图形化聊天窗口的免费开源桌面应用,适合希望使用点选式界面而非CLI加API工作流的开发者。
  • GPT4All — 另一款开源的、基于llama.cpp的本地聊天应用,满足与Jan相同的"要窗口不要终端"需求。

在目录中比较

常见误区

关于Docker Model Runner的大多数困惑,都源于假设它的行为与普通Docker容器工作负载相同,或者忽略了它是Docker Desktop的一项功能,而不是需要单独安装的产品。

误区1:以为模型在容器内运行

由于命令是docker model run,很容易以为推理发生在可以用docker ps检查的容器内。但事实并非如此——Docker官方文档确认,推理引擎以原生宿主进程运行以实现直接GPU访问,而不是在容器内运行。

误区2:寻找单独的安装程序或下载页面

Docker Model Runner没有独立的安装程序。它是Docker Desktop(macOS、Windows)以及Docker Engine加model-runner插件(Linux)的一项功能——你安装的是Docker本身,而不是作为独立产品的"Docker Model Runner"。

误区3:以为Docker Model Runner会产生自己的额外费用

Model Runner本身没有额外的价格标签。唯一需要考虑的费用问题是:你现有的Docker Desktop使用是否落在免费的Personal方案范围内(根据Docker订阅服务协议,员工少于250人且年收入低于1000万美元),还是需要付费的Pro/Team/Business方案——这是关于Docker Desktop整体的许可问题,而非该功能本身特有的问题。

误区4:期望一个引擎能覆盖所有平台和GPU

llama.cpp和vLLM覆盖的硬件不同:llama.cpp支持CPU和Apple Silicon(以及部分Windows/Linux GPU后端),而vLLM仅限于Linux和Windows WSL2上的NVIDIA GPU。在假设某个模型/引擎组合能在你的机器上运行之前,请查看上文的支持的平台表格。

常见问题

Docker Model Runner是什么?

Docker Model Runner是内置于Docker Desktop和Docker Engine中的功能,通过docker model CLI命令在本地运行大语言模型,使用llama.cpp或vLLM作为推理引擎,并暴露兼容OpenAI的API。

Docker Model Runner是免费的吗?

该功能本身不产生任何额外费用——它是Docker Desktop和Docker Engine的一部分。是否需要付费的Docker订阅取决于你所在组织的规模:根据Docker的订阅服务协议,Docker Desktop对个人用户、非商业开源项目,以及员工少于250人且年收入低于1000万美元的企业免费。

Docker Model Runner是否在容器内运行模型?

不是。尽管命令前缀是docker model,但根据介绍该功能的Docker官方博客文章,推理引擎(llama.cpp或vLLM)以原生宿主进程运行,在容器运行时之外——这使其能够直接访问GPU硬件,而不必经过容器隔离。

Docker Model Runner使用哪些CLI命令?

核心命令包括:用于下载模型的docker model pull <模型>,用于从命令行运行推理的docker model run <模型>,以及用于查看已在本地拉取的模型的docker model list。

Docker Model Runner的API端点是什么?

兼容OpenAI的API从宿主机暴露在http://localhost:12434/engines/v1(需先启用TCP访问),或从同一Docker网络中的其他容器暴露在http://model-runner.docker.internal/engines/v1。

Docker Model Runner使用llama.cpp还是vLLM?

视情况而定,两者都会用到。llama.cpp负责本地开发时的CPU和Apple Silicon推理;vLLM负责Linux和Windows WSL2上基于NVIDIA GPU的服务,面向更高吞吐量的生产使用。

Docker Model Runner支持哪些平台?

搭载Apple Silicon的macOS;搭载NVIDIA GPU的AMD64或搭载Qualcomm Adreno 6xx系列GPU的ARM64的Windows;以及支持纯CPU、NVIDIA CUDA、AMD ROCm或Vulkan后端的Linux。详情见上文支持的平台部分。

Docker Model Runner与Ollama有什么不同?

两者都在简单的pull-and-run CLI和兼容OpenAI的API背后封装了llama.cpp。主要区别在于打包方式:Ollama是需要单独安装的独立工具,而Docker Model Runner是Docker Desktop/Engine的一项功能——如果你已经每天使用Docker,选择它会更合适,因为不会在工作流中再添加第二个工具。

Docker Model Runner的模型来自哪里?

根据Docker产品页面,模型可从Docker Hub精选AI模型目录、任何其他兼容OCI的镜像仓库,或Hugging Face拉取。

资料来源

← 返回 本地LLM进阶

MCP