Docker 重磅更新!本地運(yùn)行 AI 模型從未如此簡(jiǎn)單
Docker 在其最新的 4.40 版本中引入了 Docker Model Runner 功能,使在本地環(huán)境中運(yùn)行 AI 模型變得簡(jiǎn)單和便捷。
當(dāng)前平臺(tái)支持情況:目前,Docker Model Runner 僅在搭載 Apple Silicon 芯片(M 系列)的 Mac 設(shè)備上可用。Windows 平臺(tái)的支持已在 Docker 的開(kāi)發(fā)路線圖上,將在未來(lái)版本中推出。正如官方所述:"Soon, this will also be available on Windows."
這項(xiàng)功能的推出標(biāo)志著 Docker 向 AI 開(kāi)發(fā)領(lǐng)域邁出了重要一步,為開(kāi)發(fā)者提供了一種無(wú)需配置復(fù)雜環(huán)境就能輕松管理和運(yùn)行大型語(yǔ)言模型的方式,同時(shí)避免了對(duì)外部云服務(wù)的依賴。
1743512217
可用命令整理
查看 Model Runner 狀態(tài)
檢查 Docker Model Runner 是否處于活動(dòng)狀態(tài):
docker model status
查看所有命令
顯示幫助信息和可用子命令列表:
docker model help
輸出:
Usage: docker model COMMAND
Commands:
list 列出本地可用的模型
pull 從 Docker Hub 下載模型
rm 刪除已下載的模型
run 以交互方式或使用提示運(yùn)行模型
status 檢查模型運(yùn)行器是否正在運(yùn)行
version 顯示當(dāng)前版本
拉取模型
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
列出可用模型
列出當(dāng)前拉取到本地環(huán)境的所有模型:
docker model list
您將看到類似以下內(nèi)容:
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
運(yùn)行模型
運(yùn)行模型并使用提交的提示或聊天模式與其交互。
一次性提示
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 端點(diǎn)
從 Docker Desktop GUI 或通過(guò) Docker Desktop CLI 啟用主機(jī)端 TCP 支持。
使用 docker desktop enable model-runner --tcp <port>。
之后,可以使用 localhost 和所選或默認(rèn)端口與其交互:
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 調(diào)用 Docker Model
LangChain4j[1] 是一個(gè) Java 框架,用于構(gòu)建基于大型語(yǔ)言模型 (LLM) 的應(yīng)用程序。它為 Java 開(kāi)發(fā)人員提供了與各種 LLM 交互的簡(jiǎn)單方式,類似于 Python 世界中流行的 LangChain 庫(kù)。
設(shè)置步驟
1. 確保 Docker Model Runner 已啟用
在 Docker Desktop 中確保 Model Runner 功能已啟用(見(jiàn)前文)。
2. 添加 LangChain4j 依賴
在您的 Java 項(xiàng)目的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. 拉取并運(yùn)行所需模型
使用前文介紹的命令拉取模型:
docker model pull ai/deepseek-r1-distill-llama
4. 配置 LangChain4j 連接到本地模型
創(chuàng)建一個(gè)配置類來(lái)連接到 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();
}
}
示例應(yīng)用
下面是一個(gè)使用 LangChain4j 與 Docker Model Runner 的簡(jiǎn)單示例:
public classDockerModelExample {
interfaceAssistant {
String chat(String message);
}
publicstaticvoidmain(String[] args) {
// 創(chuàng)建模型配置
ModelConfigconfig=newModelConfig();
ChatLanguageModelmodel= config.chatLanguageModel();
// 創(chuàng)建 AI 服務(wù)
Assistantassistant= AiServices.builder(Assistant.class)
.chatLanguageModel(model)
.build();
// 進(jìn)行對(duì)話
Stringresponse= assistant.chat("用 Java 編寫(xiě)一個(gè)簡(jiǎn)單的 Hello World 程序");
System.out.println(response);
}
}
總結(jié)
提起來(lái) Docker Model Runner ,那必須要與 Ollama 的對(duì)比,這兩個(gè)工具都致力于簡(jiǎn)化本地 AI 模型的運(yùn)行管理,但在技術(shù)實(shí)現(xiàn)和適用場(chǎng)景上存在顯著差異。Docker Model Runner 深度集成于 Docker 生態(tài),而 Ollama 則是獨(dú)立的模型運(yùn)行工具。
特性 | Docker Model Runner | Ollama |
開(kāi)發(fā)狀態(tài) | Beta,2025 年 4 月 1 日仍在測(cè)試 | 成熟開(kāi)源工具,已廣泛使用 |
操作系統(tǒng)支持 | 主要支持 macOS(Apple Silicon),Windows NVIDIA 即將支持 | macOS、Linux、Windows,跨平臺(tái)支持更廣 |
模型來(lái)源 | 從 Docker Hub 拉取,緩存本地 | 支持官方庫(kù)和自定義導(dǎo)入(如 GGUF),更靈活 |
定制能力 | 暫未公布構(gòu)建模式 | 通過(guò) |
API 集成 | OpenAI 兼容 API,適合 Docker 生態(tài) | REST API 和 Python 庫(kù),集成更廣泛 |
易用性 | 適合 Docker 用戶,CLI 集成緊密 | 獨(dú)立工具,適合非 Docker 用戶,界面更簡(jiǎn)單 |