Docker 重磅更新!本地運行 AI 模型從未如此簡單
Docker 在其最新的 4.40 版本中引入了 Docker Model Runner 功能,使在本地環(huán)境中運行 AI 模型變得簡單和便捷。
當前平臺支持情況:目前,Docker Model Runner 僅在搭載 Apple Silicon 芯片(M 系列)的 Mac 設備上可用。Windows 平臺的支持已在 Docker 的開發(fā)路線圖上,將在未來版本中推出。正如官方所述:"Soon, this will also be available on Windows."
這項功能的推出標志著 Docker 向 AI 開發(fā)領域邁出了重要一步,為開發(fā)者提供了一種無需配置復雜環(huán)境就能輕松管理和運行大型語言模型的方式,同時避免了對外部云服務的依賴。
1743512217
可用命令整理
查看 Model Runner 狀態(tài)
檢查 Docker Model Runner 是否處于活動狀態(tài):
docker model status
查看所有命令
顯示幫助信息和可用子命令列表:
docker model help
輸出:
Usage: docker model COMMAND
Commands:
list 列出本地可用的模型
pull 從 Docker Hub 下載模型
rm 刪除已下載的模型
run 以交互方式或使用提示運行模型
status 檢查模型運行器是否正在運行
version 顯示當前版本
拉取模型
1743512060
從 Docker Hub 拉取模型到本地環(huán)境:
docker model pull <model>
示例:
docker model pull ai/deepseek-r1-distill-llama
輸出:
Downloaded: 257.71 MB
Model ai/deepseek-r1-distill-llama pulled successfully
列出可用模型
列出當前拉取到本地環(huán)境的所有模型:
docker model list
您將看到類似以下內容:
MODEL PARAMETERS QUANTIZATION ARCHITECTURE MODEL ID CREATED SIZE
ai/deepseek-r1-distill-llama 361.82 M IQ2_XXS/Q4_K_M llama 354bf30d0aa3 1 days ago 256.35 MiB
運行模型
運行模型并使用提交的提示或聊天模式與其交互。
一次性提示
docker model run ai/deepseek-r1-distill-llama "Hi"
輸出:
Hello! How can I assist you today?
交互式聊天
docker model run ai/deepseek-r1-distill-llama
輸出:
Interactive chat mode started. Type '/bye' to exit.
> Hi
Hi there! It's SmolLM, AI assistant. How can I help you today?
> /bye
Chat session ended.
刪除模型
從系統(tǒng)中移除已下載的模型:
docker model rm <model>
輸出:
Model <model> removed successfully
使用 Rest 端點
從 Docker Desktop GUI 或通過 Docker Desktop CLI 啟用主機端 TCP 支持。
使用 docker desktop enable model-runner --tcp <port>。
之后,可以使用 localhost 和所選或默認端口與其交互:
curl http://localhost:12434/engines/llama.cpp/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "ai/deepseek-r1-distill-llama",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Please write a summary about Docker."
}
]
}'
LangChain4j 調用 Docker Model
LangChain4j[1] 是一個 Java 框架,用于構建基于大型語言模型 (LLM) 的應用程序。它為 Java 開發(fā)人員提供了與各種 LLM 交互的簡單方式,類似于 Python 世界中流行的 LangChain 庫。
設置步驟
1. 確保 Docker Model Runner 已啟用
在 Docker Desktop 中確保 Model Runner 功能已啟用(見前文)。
2. 添加 LangChain4j 依賴
在您的 Java 項目的pom.xml文件中添加以下依賴:
<dependencies>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
<version>1.0.0-beta2</version>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
<version>1.0.0-beta2</version>
</dependency>
</dependencies>
3. 拉取并運行所需模型
使用前文介紹的命令拉取模型:
docker model pull ai/deepseek-r1-distill-llama
4. 配置 LangChain4j 連接到本地模型
創(chuàng)建一個配置類來連接到 Docker Model Runner:
import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.model.openai.OpenAiChatModel;
public class ModelConfig {
public ChatLanguageModel chatLanguageModel() {
return OpenAiChatModel.builder()
.baseUrl("http://localhost:12434/engines/llama.cpp/v1")
.modelName("ai/deepseek-r1-distill-llama")
.temperature(0.7)
.build();
}
}
示例應用
下面是一個使用 LangChain4j 與 Docker Model Runner 的簡單示例:
public classDockerModelExample {
interfaceAssistant {
String chat(String message);
}
publicstaticvoidmain(String[] args) {
// 創(chuàng)建模型配置
ModelConfigconfig=newModelConfig();
ChatLanguageModelmodel= config.chatLanguageModel();
// 創(chuàng)建 AI 服務
Assistantassistant= AiServices.builder(Assistant.class)
.chatLanguageModel(model)
.build();
// 進行對話
Stringresponse= assistant.chat("用 Java 編寫一個簡單的 Hello World 程序");
System.out.println(response);
}
}
總結
提起來 Docker Model Runner ,那必須要與 Ollama 的對比,這兩個工具都致力于簡化本地 AI 模型的運行管理,但在技術實現(xiàn)和適用場景上存在顯著差異。Docker Model Runner 深度集成于 Docker 生態(tài),而 Ollama 則是獨立的模型運行工具。
特性 | Docker Model Runner | Ollama |
開發(fā)狀態(tài) | Beta,2025 年 4 月 1 日仍在測試 | 成熟開源工具,已廣泛使用 |
操作系統(tǒng)支持 | 主要支持 macOS(Apple Silicon),Windows NVIDIA 即將支持 | macOS、Linux、Windows,跨平臺支持更廣 |
模型來源 | 從 Docker Hub 拉取,緩存本地 | 支持官方庫和自定義導入(如 GGUF),更靈活 |
定制能力 | 暫未公布構建模式 | 通過 |
API 集成 | OpenAI 兼容 API,適合 Docker 生態(tài) | REST API 和 Python 庫,集成更廣泛 |
易用性 | 適合 Docker 用戶,CLI 集成緊密 | 獨立工具,適合非 Docker 用戶,界面更簡單 |