发布于 2026-01-06 3 阅读
0

从零到本地LLM:Docker模型运行器开发者指南

从零到本地LLM:Docker模型运行器开发者指南

Docker架构

为什么本地法学硕士项目如此重要

大型语言模型彻底改变了我们构建应用程序的方式,但它们大多运行在云端。这意味着您经常会遇到响应缓慢、API 调用成本高昂以及隐私泄露或需要网络连接等问题。在本地计算机上运行模型可以避免所有这些问题,让您轻松获得速度更快、更私密、且支持离线使用的 AI 服务。

Docker Model Runner 的改变在于,它将容器原生开发的强大功能引入到本地 AI 工作流程中,让您可以专注于构建,而不是与工具链作斗争。

开发者的痛点:

  • 隐私问题——当数据必须发送到云端 API 时,很难进行安全测试。
  • 成本高昂——通过付费 API 运行提示会迅速累积成本,尤其是在早期开发和测试阶段。
  • 设置复杂- 让本地模型运行起来通常意味着要处理复杂的安装和硬件依赖关系。
  • 硬件限制——许多笔记本电脑的设计初衷并非为了运行大型模型,尤其是没有独立显卡的笔记本电脑。
  • 不同型号的测试很困难——在不同型号或版本之间切换通常意味着重新配置整个设置。

Docker 模型运行器通过以下方式解决这些问题:

  • 使用简单的 CLI 实现模型访问标准化,该 CLI 可从 Docker Hub 拉取模型
  • 底层使用 llama.cpp 快速运行
  • 提供开箱即用的 OpenAI 兼容 API
  • 直接与 Docker Desktop 集成
  • 在可用时使用 GPU 加速,支持 Windows 上的 Apple Silicon(Metal)和 NVIDIA GPU,以加快推理速度。

🐳什么是 Docker 模型运行器?

这是一个轻量级的本地模型运行时环境,与 Docker Desktop 集成。它允许您通过熟悉的命令行界面 (CLI) 和兼容 OpenAI 的 API 在本地运行量化模型(GGUF 格式)。它由以下技术驱动llama.cpp并旨在:

- 对开发者友好:几秒钟内即可拉取并运行模型
- 离线优先:非常适合隐私和边缘使用场景
- 可组合:可与 LangChain、LlamaIndex 等配合使用。

主要特点:

  • OpenAI 风格的 API 服务地址为:

http://localhost:12434/engines/llama.cpp/v1/chat/completions

  • 无需GPU:即使在搭载Apple Silicon芯片和Windows 11 + NVIDIA GPU的MacBook上也能运行
  • 通过 UX 和 CLI 轻松切换模型
  • 与 Docker Desktop 集成

五分钟快速入门

1. 启用模型运行器(Docker Desktop)

docker desktop enable model-runner --port 12434
Enter fullscreen mode Exit fullscreen mode

2. 拉出你的第一个模型

docker model pull ai/smollm2:360M-Q4_K_M
Enter fullscreen mode Exit fullscreen mode

3. 运行带提示的模型

docker model run ai/smollm2:360M-Q4_K_M "Explain the Doppler effect like I’m five."
Enter fullscreen mode Exit fullscreen mode

4. 使用 API(兼容 OpenAI)

curl http://localhost:12434/v1/completions \
-H "Content-Type: application/json" \
-d '{"model": "smollm2", "prompt": "Hello, who are you?", "max_tokens": 100}'
Enter fullscreen mode Exit fullscreen mode

⚙️ 构建您的本地 GenAI 技术栈

以下是一个使用 Docker Model Runner 作为推理后端的简单架构:

- LangChain:用于提示模板和链式调用
- Docker Model Runner:在本地运行实际的 LLM
- LlamaIndex:用于文档索引和检索(RAG)
- React Frontend:简洁的聊天 UI,用于与模型交互
- Docker Compose:一个命令即可运行所有组件

Compose 示例示例
以下示例 docker-compose.yml展示了 Docker 模型运行器如何集成到本地 GenAI 堆栈中:

services:
  chat:
    build: ./chat  # Replace with your frontend app path or Git repo
    depends_on:
      - ai_runner
    environment:
      - MODEL_URL=${AI_RUNNER_URL}
      - MODEL_NAME=${AI_RUNNER_MODEL}
    ports:
      - "5000:5000"

  ai_runner:    # Even if a service of type `model` is specified,
                # It doesn't run as a container — it runs directly on 
                  the host system via Docker Model Runner.

    provider:
      type: model
      options:
        model: ai/smollm2 # Specifies the local LLM to be used

Enter fullscreen mode Exit fullscreen mode

特征:

  • 离线使用本地模型缓存
  • 动态加载/卸载模型以节省资源
  • 兼容 OpenAI 的 API,可实现无缝集成
  • 兼容系统上的 GPU 加速支持

💡额外福利:添加前端聊天界面

使用任何前端框架(React/Next.js/Vue)构建一个聊天界面,该界面通过 REST API 与本地模型进行通信。

简单示例获取:

#!/bin/sh

curl http://localhost:12434/engines/llama.cpp/v1/chat/completions \
-H "Content-Type: application/json" \
-d ' {
"model": "ai/smollm2",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Please write 500 words about the fall of Rome."
}
]
}'

Enter fullscreen mode Exit fullscreen mode

这样一来,无论您使用的是搭载 Apple Silicon 芯片的 MacBook 还是配备 NVIDIA GPU 的 Windows PC,都能在您的计算机上直接运行完全本地化的 LLM 模型。无需云 API,无需网络连接。模型即可在本地原生运行。

🚀高级用例

- RAG 流水线:结合 PDF、本地向量搜索和模型运行器
- 多模型支持:在独立服务中运行 phi2、mistral 等模型
- 模型对比:使用 Compose 构建 A/B 测试界面
- Whisper.cpp 集成:语音转文本容器插件(即将推出)
- 边缘 AI 设置:部署在隔离系统或开发板上

愿景:未来的发展方向

Docker 模型运行器路线图(Beta 阶段):

  • 有可能建立一个可搜索、可标记的 ModelHub 或 Docker Hub 注册表
  • 计划支持 Compose 原生 GenAI 模板
  • 探索 Whisper + LLM 混合跑鞋
  • 开发用于监控模型性能的仪表盘
  • IDE 集成,例如用于快速工程和测试的 VSCode 扩展,仍在讨论中,尚未推出。

注意:Docker 模型运行器目前处于 Beta 测试阶段。部分功能和集成尚处于早期阶段或规划阶段,可能会随时间推移而有所变化。

作为一名开发者,我认为这是一个巨大的机会,可以降低人工智能实验的门槛,并帮助每个人都能接触到容器原生人工智能。

文章来源:https://dev.to/docker/from-zero-to-local-llm-a-developers-guide-to-docker-model-runner-4oi2