Docker Model Runner vs. Ollama?本地LLM运行迎来新玩家

请点击上方蓝字TonyBai订阅公众号!

人工智能,特别是大语言模型(LLM),正迅速成为现代应用的核心驱动力。然而,对于广大开发者而言,在本地环境运行和调试LLM往往伴随着环境配置复杂、硬件兼容性问题和性能优化挑战等诸多痛点。尽管Ollama等工具已在此领域做出杰出贡献,并凭借其简洁易用成为许多开发者的首选,但Docker作为云原生时代应用开发和部署的事实标准,其入局无疑带来了新的可能性。Docker公司近期在官网宣布[1]:在Docker Desktop 4.40 版本 (macOS on Apple Silicon) 中推出了Docker Model RunnerBeta版,旨在提供一种深度整合Docker生态的本地LLM运行与管理体验。这是否预示着本地AI开发格局即将迎来新的变化?在这篇文章中,我们就来看介绍一下Docker model runner的功能特性以及其对本地AI开发格局可能带来的新影响。

我们下来看看docker model runner都有哪些新的核心特性。

1. Docker Model Runner核心特性解析

Docker Model Runner的核心目标是让开发者能够像管理容器一样轻松地管理和运行AI模型。其Beta版本带来了以下关键特性:

1.1 本地LLM推理引擎集成

Model Runner内置了一个基于流行的**llama.cpp[2]**项目构建的推理引擎。这意味着开发者可以直接利用Docker Desktop的能力在本地运行LLM,无需繁琐的依赖安装和环境配置。

1.2 类Docker的模型管理体验

沿用熟悉的Docker CLI风格,Model Runner引入了docker model系列命令,让开发者可以轻松地完成下面工作:

  • 拉取模型: docker model pull ai/smollm2:360M-Q4_K_M - 从Docker Hub的ai命名空间下拉取预置模型。

  • 列出本地模型: docker model list - 查看已下载到本地的模型。

  • 运行模型:

    • 一次性提示: docker model run <model_name> "Your prompt"

    • 交互式聊天: docker model run <model_name>

  • 移除模型: docker model rm <model_name> - 清理本地模型。

1.3 模型即OCI制品:标准化与可移植性

一个重要的创新是,Model Runner将LLM打包为标准的OCI (Open Container Initiative) 制品。这意味着模型可以像容器镜像一样,通过标准的容器注册表(如 Docker Hub)进行分发、版本控制和复用,极大地提高了模型的可移植性和标准化水平。模型元数据(如参数量、量化级别)也通过Tag ({model}:{parameters}-{quantization}) 进行标识。

1.4 OpenAI兼容API:无缝集成现有生态

Model Runner通过一个内置的Inference Server暴露了OpenAI兼容的API端点。这对于开发者来说是一个巨大的福音,意味着可以轻松地将现有的、基于OpenAI API开发的应用程序或库(如LangChain4j、各类OpenAI SDK)对接到本地运行的模型上,只需修改baseUrl即可。

  • 容器内访问: http://model-runner.docker.internal/engines/v1

  • 主机访问 (需启用TCP): 默认为http://localhost:12434/engines/v1 (端口可配置)

1.5 性能优化:原生执行与GPU加速 (Apple Silicon)

与运行容器不同,docker model run命令并不会启动一个隔离的容器。相反,为了最大化性能,尤其是在Apple Silicon硬件上利用 GPU 加速,Model Runner的推理引擎(llama.cpp) 会作为原生主机进程运行。模型在首次请求时按需加载到内存,并在闲置一段时间(目前为5分钟)后自动卸载,以优化资源占用。

# 示例:拉取并运行一个小型模型
$docker model pull ai/smollm2:360M-Q4_K_M
$docker model run ai/smollm2:360M-Q4_K_M "请给我讲一个关于鲸鱼的有趣事实。"

理解了Docker Model Runner的技术内核后,开发者更关心的是如何实际获取模型并将其融入日常开发工作流中。接下来,我们将目光投向其模型生态和开发者体验方面。

2. 社区亮点:模型生态与开发者体验

2.1 模型获取:Docker Hub ai/命名空间

Docker Hub上开辟了专属的ai/命名空间(https://hub.docker.com/u/ai[3]),用于托管一系列经过优选、适合本地运行的热门LLM。这些模型提供了不同的参数量和量化版本(如 Q4_K_M),以适应不同的硬件配置和性能需求。模型详情卡片提供了更多关于模型特性的信息。


2.2 快速上手与集成

官方提供了一个示例GenAI应用(https://github.com/docker/hello-genai[4]),演示了如何快速构建一个由本地Model Runner驱动的AI应用。同时,由于其OpenAI兼容API,集成到现有开发流程中非常直观。

// 示例:在 Java (LangChain4j) 中使用 Model Runner (假设已启用TCP访问)
// 注意:模型需预先 docker model pull
import dev.langchain4j.model.openai.OpenAiChatModel;

OpenAiChatModel model = OpenAiChatModel.builder()
        .baseUrl("http://localhost:12434/engines/v1") // 指向本地 Model Runner API
        .apiKey("whatever") // API Key 在本地模式下通常非必需,但 SDK 可能要求非空
        .modelName("ai/smollm2:360M-Q4_K_M") // 指定 Docker Hub 上的模型标识
        .build();

String answer = model.chat("请给我讲一个关于鲸鱼的有趣事实。");
System.out.println(answer);

尽管Docker Model Runner展现了诱人的前景和便捷的集成方式,但作为Beta版本,它在现阶段也存在一些不可忽视的限制和已知问题。开发者在试用前应有所了解。

3. 注意事项:Beta阶段的限制与已知问题

作为Beta版本,Docker Model Runner还存在一些需要注意的地方:

  • 平台限制: 目前仅支持Docker Desktop 4.40及以上版本,且限于macOS on Apple Silicon平台。

  • 资源管理: 缺乏运行超大模型的防护措施。尝试加载超出系统内存/显存容量的模型可能导致系统响应缓慢甚至假死。

  • 模型拉取体验: 在网络不稳定或磁盘空间不足导致pull失败时,run命令仍可能进入聊天界面;后续pull成功时可能错误地显示"0 bytes" 下载进度。

  • 摘要支持: CLI对通过镜像摘要(digest)指定模型的支持尚不一致,建议使用模型名称加标签。

了解了当前Beta版本的局限性后,让我们再次回到宏观视角,审视Docker Model Runner的推出对本地LLM工具生态意味着什么,特别是与现有方案Ollama相比,它的定位、优劣势以及未来的发展趋势。

4. 小结

Docker Model Runner的推出,标志着Docker正式将其在容器领域的成功经验延伸至AI模型的分发和本地运行领域。通过将LLM OCI化、提供熟悉的CLI交互和OpenAI兼容API,Model Runner试图极大地降低开发者在本地探索和集成AI能力的门槛,特别是对于那些已经深度融入Docker生态的用户。

当然,谈及本地LLM运行,我们不能不提及Ollama。作为该领域的事实标准之一,Ollama以其极致的**简洁易用性、活跃的社区和广泛的跨平台支持(Linux, macOS, Windows)**赢得了大量开发者的青睐。

Docker Model Runner与Ollama代表了两种不同的发展路径和侧重点:

  • Ollama: 专注于提供一个轻量级、开箱即用、纯粹的本地LLM推理服务,拥有丰富的即用模型库和成熟的社区生态。

  • Docker Model Runner: 旨在将LLM的管理与运行无缝整合到其庞大的容器化开发与部署生态系统中。其核心优势在于利用OCI标准化模型分发,以及未来与Docker Desktop、Docker Compose、镜像构建流程等深度集成的巨大潜力。

目前来看,Ollama在跨平台兼容性、社区成熟度和立即可用模型数量上具有明显优势。 而Docker Model Runner的核心吸引力在于其与Docker工作流的天然契合度以及OCI标准带来的规范化前景,这对重度依赖Docker进行开发、测试和CI/CD的团队可能更具吸引力。当然,Model Runner 目前的Beta状态和仅限Apple Silicon macOS的平台限制也是其普及的主要障碍。

未来,我们可以预见两者之间将形成一种竞争与共存的格局:

  • 竞争将推动双方在性能优化、易用性、模型支持广度和深度、以及开发者体验上持续改进。

  • 共存则是因为它们可能服务于略有不同的用户群体或使用场景。偏好简单独立工具的用户可能会继续选择Ollama,而希望将LLM作为其Docker化应用一部分进行统一管理的用户则可能倾向于Model Runner。

Docker能否凭借其强大的生态整合能力和OCI标准后来居上?Ollama是否会进一步扩展其功能边界以应对挑战?这都将是未来几年值得关注的技术趋势。无论如何,这种良性竞争最终受益的将是广大开发者,他们将拥有更多元化、更强大的工具来赋能本地AI应用的创新。

即刻体验 Docker Model Runner:

  1. 确保你的Docker Desktop (macOS on Apple Silicon) 已升级至4.40或更高版本。

  2. 通过Docker Desktop设置 -> Features in development -> Beta 确认"Enable Docker Model Runner" 已勾选 (默认启用)。

  3. 打开终端,开始使用docker model命令探索本地LLM的世界!

5. 参考资料

  • Docker Model Runner官方文档[5] - https://docs.docker.com/desktop/features/model-runner

  • Docker Hub ai/命名空间[6] - https://hub.docker.com/u/ai

  • Docker model runner快速入门博客文章[7] - https://www.docker.com/blog/run-llms-locally/

  • Ollama 官方网站[8] - https://ollama.com


参考资料

[1] 

Docker公司近期在官网宣布: https://www.docker.com/blog/run-llms-locally/

[2] 

llama.cpp: https://github.com/ggml-org/llama.cpp

[3] 

https://hub.docker.com/u/ai: https://hub.docker.com/u/ai

[4] 

https://github.com/docker/hello-genai: https://github.com/docker/hello-genai

[5] 

Docker Model Runner官方文档: https://docs.docker.com/desktop/features/model-runner/

[6] 

Docker Hub ai/命名空间: https://hub.docker.com/u/ai

[7] 

Docker model runner快速入门博客文章: https://www.docker.com/blog/run-llms-locally/

[8] 

Ollama 官方网站: https://ollama.com/

如果本文对你有所帮助,请帮忙点赞、推荐和转发

点击下面标题,阅读更多干货!

继Ollama之后,Go在AI领域再下一城

使用Ollama和Go基于文本嵌入模型实现文本向量化

使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B

Go语言的2025开局:AI浪潮助推,生态持续繁荣

构建高效的AI智能体[译]

智能时代临近:我眼中AI编程的现在与未来

在AIGC赛道上Go语言能做点啥


Gopher部落知识星球在2025年将继续致力于打造一个高品质的Go语言学习和交流平台。我们将继续提供优质的Go技术文章首发和阅读体验。2025年将在星球首发“Gopher的AI原生应用开发第一课”、“Go陷阱与缺陷”、“Go原理课”的专栏!此外,我们还会加强星友之间的交流和互动。欢迎大家踊跃提问,分享心得,讨论技术。我会在第一时间进行解答和交流。我衷心希望Gopher部落可以成为大家学习、进步、交流的港湾。让我相聚在Gopher部落,享受coding的快乐! 欢迎大家踊跃加入!

著名云主机服务厂商DigitalOcean发布最新的主机计划,入门级Droplet配置升级为:1 core CPU、1G内存、25G高速SSD,价格5$/月。有使用DigitalOcean需求的朋友,可以打开这个链接地址:https://m.do.co/c/bff6eed92687 开启你的DO主机之路。

Gopher Daily(Gopher每日新闻) - https://gopherdaily.tonybai.com

我的联系方式:

  • 微博(暂不可用):https://weibo.com/bigwhite20xx

  • 微博2:https://weibo.com/u/6484441286

  • 博客:tonybai.com

  • github: https://github.com/bigwhite

  • Gopher Daily归档 - https://github.com/bigwhite/gopherdaily

  • Gopher Daily Feed订阅 - https://gopherdaily.tonybai.com/feed

商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值