我在本地用 Ollama 跑大模型已经很久了,没什么可抱怨的。它能干活,我也不用怎么折腾。最近,Docker 发布了自己的模型运行器,它提供了许多与 Ollama 相同的功能。它可以通过 Docker Desktop 或 Docker Engine 拉取、运行、管理和部署本地 AI 模型。它通过 llama.cpp 支持 GGUF 模型,通过 vLLM 支持 Safetensors 模型,在支持的系统上提供硬件加速,并支持来自 Docker Hub、Hugging Face 或其他 OCI 注册表的模型。我已经用它代替 Ollama 将近一周了,但我还真不一定能一直用它。
Docker 模型运行器跟 Docker 无缝衔接
而且配置起来特别简单
Docker 模型运行器的工作方式与在常规容器内运行模型不同。Docker 把模型当作独立的 OCI 制品来处理,由专门的推理引擎在本地加载和运行。首次下载后,模型会缓存在你的存储上,在收到请求时加载到内存中,并在不再使用时卸载。如果你已经在使用 Docker,整个流程对你来说不会陌生,因为同一个 CLI 现在可以处理容器、镜像和本地模型。
对大多数人来说,真正管用的是默认的 llama.cpp 后端。它在 Apple Silicon、Windows 和 Linux 上运行量化的 GGUF 模型,并在支持的 Mac 上自动开启 Metal 加速。Docker 还提供 vLLM,用于对 Safetensors 模型进行更高吞吐量的推理,尽管该后端需要搭配支持的 NVIDIA GPU,并且目前能用的平台也少得多。你可以通过 OpenAI 兼容和 Ollama 兼容的 API 来访问任一后端,也就是说,很多原本为 Ollama 写的应用,只要改一下 base URL 就能接入 Docker 模型运行器。
通过 Docker Desktop 设置它简单到离谱。macOS 上需要 Docker Desktop 4.40 或更高版本,Windows 上则需要 4.41 或更高版本。打开 Docker Desktop,进入设置 -> AI,然后启用 Docker Model Runner。如果你想连接到 Open WebUI、编码工具或其他本地应用程序,也可以在这里启用主机端 TCP 访问。启用后,新的 Models 区域让你不用打开终端就能发现、下载、运行模型,还能直接跟模型聊天。我个人还是更习惯用命令行,因为操作流程跟 Ollama 几乎一样。
使用 Docker Model Runner 处理日常任务
体验与 Ollama 类似
模型下载后,用 Docker Model Runner 跟用 Ollama 差别不大。Docker Model Runner 在终端内打开一个交互式聊天,你可以发提示、接着聊,不用每回复一次就重启模型。Docker Desktop 还在模型选项卡下提供了一个基本的聊天界面,想测试模型又不想再装一个应用的时候,这个挺方便的。
内置接口用来快速试一下没问题,但我不会拿它当跟本地LLM打交道的主要方式。但把Docker Model Runner接到Open WebUI这类工具上,就好用多了。由于它提供了与Ollama兼容的API,Open WebUI几乎可以把它当成Ollama服务器来用。你只要把OLLAMA_BASE_URL设成Docker Model Runner的地址就行。
这样你就有了一个像ChatGPT那样的完整界面,有对话历史、Markdown渲染、能切换模型、设系统提示,生成参数也能调。模型仍然通过Docker Model Runner运行,Open WebUI只管界面。
同样的方法也适用于 Cline、Continue、Aider、Cursor 和 OpenCode 等 AI 编码工具。
你可以随便填一个占位符当 API 密钥,因为本地请求根本不需要密钥。之后,你用 docker model list 里显示的同一个名字来选模型,例如 ai/qwen2.5-coder。我还挺喜欢 Docker 能让我单独配置模型这一点。如果某个编码模型一开始的上下文窗口小得没必要,我可以轻松调大。
Docker Model Runner 并不会让 Ollama 过时
Ollama 同样出色
在两者都使用过之后,我认为 Docker Model Runner 跑出来的效果并不会从根本上比 Ollama 好。两个工具在差不多的设置下用 llama.cpp 跑同一个 GGUF 模型时,模型本身、量化级别、上下文大小和硬件的影响远大于真正跑模型的这个应用本身。Docker 确实允许你在受支持的 NVIDIA 系统上使用 vLLM,但大多数人就是在普通笔记本上跑量化模型,这个功能对他们来说意义不大。
如果你已经在工作流中使用 Docker Desktop,那 Docker Model Runner 就最合适不过了。它让你通过同一个界面管理模型和容器,把模型存成 OCI 制品,在 Compose 项目中使用它们,并通过 Docker Desktop 检查请求。比起记一堆 CLI 命令,我也更愿意用它的图形化模型管理界面。然而,光是为了跑本地 LLM 就装个 Docker Desktop 还得一直开着,实在有点小题大做。
Ollama 还具有生态系统更为成熟的优势。很多本地 AI 应用都提供专用的 Ollama 选项,而且大多数安装指南都假定其 API 在 11434 端口上可用。Docker Model Runner 提供了与 Ollama 兼容的 API,因此很多这类应用仍然能正常用,但有些得手动改 URL 或模型名。Docker 对不同推理引擎和注册表的支持更为灵活,不过这也带来了额外的设置和各平台各自的限制。
我还是用 Ollama 更省事
如果你已经在使用 Ollama 并且一切正常,那并没有什么实际理由去换。你大概会跑同样的模型,速度差不多,输出也一样。如果你已经在用 Docker Desktop,或者希望将本地模型集成到容器化应用中,那 Docker Model Runner 更值得一试。
热门跟贴