Docker部署Ollama本地AI开发环境推荐

2026-06-20阅读 0热度 0
ai

前言

“想开发 AI 应用,每次都要调用云端 API?免费额度用完还得付费?跑个 demo 都要担心成本?”

这大概是不少 AI 应用开发者都遇到过的窘境。阿里百炼、智谱 AI、OpenAI 这类平台确实会送些免费额度,但用完了就得真金白银地掏钱。更别说在开发调试阶段,频繁调用 API 不仅烧钱,网络延迟也够让人头疼。

其实有更聪明的办法:本地部署一个大模型,开发测试随便用,再也不用操心额度和费用问题

下面这篇文章,就手把手教你用 Docker + Ollama 搭一套本地 AI 开发环境。以后开发 AI 应用时,跑测试、调参数,直接调用本地模型就行。

Ollama 是什么?

Ollama 是一个开源的本地大模型运行工具,用起来就像 Docker 管理容器一样简单——拉取、运行、管理各种开源大模型,一条命令搞定。

核心能力

  • 一键拉取模型:跟 docker pull 差不多,敲个 ollama pull qwen2.5:7b 就能把模型下到本地
  • 本地推理运行:全在本地跑,断网也没关系
  • OpenAI 兼容 API:提供标准的 HTTP 接口,跟 OpenAI 的调用方式一样
  • 多模型支持:Llama、Qwen、DeepSeek、Mistral……市面上主流的开源模型基本都支持

工业生产中的定位

场景推荐方案原因
开发测试Ollama部署简单、API 兼容、迭代快
个人/小团队Ollama资源占用低、开箱即用
生产环境vLLM / 云端 API高并发、高吞吐、稳定可靠
企业私有化vLLM + K8s可扩展、可监控、高可用

一句话总结:Ollama 的定位是本地开发测试工具,不是生产级推理引擎。真要支撑高并发线上服务,还是得考虑 vLLM 这类专业方案。

竞品对比

工具特点适用场景
Ollama上手最简单,类 Docker 体验开发测试、个人使用
vLLM高性能推理引擎,支持 PagedAttention生产环境、高并发
LM Studio图形界面,适合非技术用户个人体验、无代码场景
LocalAIOpenAI API 完全兼容,功能丰富需要完整 OpenAI 替代方案
llama.cpp底层推理库,性能极致深度定制、嵌入式场景

为什么开发阶段选 Ollama?

  • 安装最简单:一条命令搞定
  • 模型管理方便:拉取、切换、删除都很直观
  • API 兼容性好:直接用 OpenAI SDK 就能调
  • 资源占用低:日常开发机器就能跑

本地开发 vs 云端 API

先上一张对比表,看看两种方案到底差在哪:

对比项云端 API(百炼/OpenAI)本地 Ollama
调用方式HTTP APIHTTP API(兼容 OpenAI 格式)
费用免费额度用完需付费完全免费
网络依赖网络,有延迟本地调用,毫秒级响应
隐私数据上传云端数据完全本地
模型选择平台限定自由选择任意模型
适用场景生产环境开发测试、跑 Demo

核心价值:本地 Ollama 提供的是 OpenAI 兼容的 API 接口,你的代码几乎不用改,只需要换一下 base_url,就能无缝切换。

第一步:安装 Docker Desktop

1. 下载安装

去 Docker 官网下载安装包:

https://www.docker.com/products/docker-desktop/

根据操作系统选对应版本就行,Windows / macOS / Linux 都支持。

2. 验证安装

打开终端,执行:

docker --version
docker run hello-world

看到 “Hello from Docker!” 说明安装成功。

第二步:部署 Ollama 容器

1. 创建挂载目录

macOS 用户

mkdir -p /Users/$(whoami)/docker/ollama

Linux 用户

sudo mkdir -p /home/docker/ollama
sudo chmod 777 /home/docker/ollama

说明:macOS 的用户目录是 /Users/用户名,Linux 是 /home/用户名。macOS 的 /home 是受保护的系统目录,无法写入,千万别搞混。

2. 启动容器

macOS 用户

docker run -d 
  --name ollama 
  -p 11434:11434 
  -v /Users/$(whoami)/docker/ollama:/root/.ollama 
  ollama/ollama

Linux 用户

docker run -d 
  --name ollama 
  -p 11434:11434 
  -v /home/docker/ollama:/root/.ollama 
  ollama/ollama

参数说明

  • -p 11434:11434:暴露 API 端口,供本地应用调用
  • -v <宿主机目录>:/root/.ollama:挂载宿主机目录,模型数据持久化保存

2. 验证服务

curl http://localhost:11434

返回 `Ollama is running` 就说明成功了。

第三步:拉取开发测试用模型

进入容器:

docker exec -it ollama bash

推荐模型

开发测试推荐轻量级模型(响应快,资源占用低):

# 中文场景推荐
ollama pull qwen2.5:7b          # 通义千问,中文能力强
ollama pull qwen2.5:1.5b        # 更轻量,快速测试用

# 推理场景推荐
ollama pull deepseek-r1:7b      # DeepSeek R1,推理能力强
ollama pull deepseek-r1:1.5b    # 轻量版

# 英文场景推荐
ollama pull llama3.2:3b         # Llama 3.2,平衡性能和速度
ollama pull llama3.1:8b         # 经典版本

常用命令

ollama list          # 查看已下载模型
ollama ps            # 查看运行中的模型
ollama rm <模型名>   # 删除模型

第四步:在代码中调用本地模型

Ollama 提供 OpenAI 兼容的 API,这意味着你可以直接复用现有代码,只需修改 base_url。

API 端点

Base URL: http://localhost:11434/v1
API Key: ollama(随便填,本地不需要验证)

Python 示例

from openai import OpenAI
client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="ollama"  # 本地部署,随便填
)
response = client.chat.completions.create(
    model="qwen2.5:1.5b",
    messages=[
        {"role": "user", "content": "你好,介绍一下你自己"}
    ]
)
print(response.choices[0].message.content)

Ja vaScript/Node.js 示例

import OpenAI from 'openai';
const client = new OpenAI({
    baseURL: 'http://localhost:11434/v1',
    apiKey: 'ollama'
});
const response = await client.chat.completions.create({
    model: 'qwen2.5:1.5b',
    messages: [
        { role: 'user', content: '你好,介绍一下你自己' }
    ]
});
console.log(response.choices[0].message.content);

cURL 测试

curl http://localhost:11434/v1/chat/completions 
  -H "Content-Type: application/json" 
  -d '{
    "model": "qwen2.5:1.5b",
    "messages": [{"role": "user", "content": "你好"}]
  }'

第五步:Spring Boot 集成 Spring AI

Ja va 开发者别着急,Spring AI 对 Ollama 有原生支持,通过 OllamaChatModel 可以直接注入使用。

1. 添加依赖


    org.springframework.ai
    spring-ai-ollama
    1.1.0

2. 添加自动配置 Starter

踩坑提醒:网上很多教程推荐用 spring-ai-ollama-spring-boot-starter,但它的最新版是 1.0.0-M6。如果你的项目中 Spring AI 版本较新(比如 1.1.0),直接引入会导致启动报错。

原因:Spring AI 新版本把 spring-ai-spring-boot-autoconfigure 拆成了多个模块,而旧版 starter 依赖的自动配置类跟新版有 Bean 冲突。

解决方案:用新版单独的自动配置模块:


    org.springframework.ai
    spring-ai-autoconfigure-model-ollama
    1.1.0

3. 配置 application.yml

spring:
  ai:
    ollama:
      base-url: http://localhost:11434
      chat:
        model: deepseek-r1:7b

4. 注入 OllamaChatModel

配置完成后,可以直接注入 ollamaChatModel

@Autowired
@Qualifier("ollamaChatModel")
private ChatModel ollamaChatModel;

5. 完整调用示例

@RestController
@RequestMapping("/ai/ollama")
public class OllamaChatController {
    @Autowired
    @Qualifier("ollamaChatModel")
    private ChatModel ollamaChatModel;
    @GetMapping("/stream/chat")
    public Flux streamChat(HttpServletResponse response) {
        response.setCharacterEncoding("UTF-8");
        Flux stream = ollamaChatModel.stream(new Prompt("你是谁?"));
        return stream.map(resp -> resp.getResult().getOutput().getText());
    }
}

启动应用后,访问这个接口,就能调用到本地部署的 DeepSeek 模型了。

开发工作流建议

推荐的开发流程

1. 本地开发 → 调用 Ollama(localhost:11434)
2. 本地测试 → 继续用 Ollama,快速迭代
3. 部署上线 → 切换到云端 API(阿里百炼/智谱/OpenAI)

切换只需改配置

# 开发环境
spring.ai.ollama.base-url: http://localhost:11434
# 生产环境
spring.ai.openai.base-url: https://dashscope.aliyuncs.com/compatible-mode/v1
spring.ai.openai.api-key: ${DASHSCOPE_API_KEY}

常见问题

Q1:模型响应太慢?

选参数更小的模型,比如 qwen2.5:1.5bdeepseek-r1:1.5b,响应速度会快很多。

Q2:内存不够?

8GB 内存建议用 7B 以下的模型,16GB 可以尝试 14B 模型。

Q3:如何查看 API 是否正常?

curl http://localhost:11434/v1/models

返回模型列表就说明没问题。

Q4:容器重启后模型还在吗?

当然在。模型存在挂载的宿主机目录里(macOS: /Users/用户名/docker/ollama,Linux: /home/docker/ollama),容器重启或重建都不会丢。

总结

搭建本地 AI 开发环境,核心就三步:

  1. 安装 Docker Desktop → 容器运行环境
  2. 部署 Ollama 容器 → 本地模型服务
  3. 代码中调用 API → OpenAI 兼容接口

核心价值

  • 开发调试阶段,不用再惦记 API 额度和费用
  • 本地调用,毫秒级响应,迭代速度翻倍
  • OpenAI 兼容接口,代码几乎不用改
  • 部署上线时,切换 base_url 就完事

参考资料

  • Ollama 官方文档:
    https://ollama.com/docs
  • Ollama OpenAI 兼容 API:
    https://github.com/ollama/ollama/blob/main/docs/openai.md
  • Spring AI 文档:
    https://docs.spring.io/spring-ai/reference/
免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策