请点击上方蓝字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:
确保你的Docker Desktop (macOS on Apple Silicon) 已升级至4.40或更高版本。
通过Docker Desktop设置 -> Features in development -> Beta 确认"Enable Docker Model Runner" 已勾选 (默认启用)。
打开终端,开始使用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和OpenWebUI在CPU上玩转Meta Llama3-8B
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

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