Docker部署全攻略:Ollama安装、本地大模型配置与One-API接入

Ollama 是一款开源工具,允许用户在本地便捷地运行多种大型开源模型,如清华大学的 ChatGLM、阿里的千问以及 Meta 的 Llama 等。它支持 macOS、Linux 和 Windows 三大主流操作系统。本文将详细介绍如何通过 Docker 安装 Ollama,并将其部署以使用本地大模型,同时接入 one-api,以便通过 API 接口轻松调用所需的大规模语言模型。


硬件配置

由于大模型对硬件配置要求较高,建议配置如下:

  • CPU:高性能多核处理器(如 E5-2696 v2)
  • 内存:32G 起步(建议 64G 或更高)
  • 硬盘:SSD(建议 512G 或更大)
  • 显卡:独立显卡(如 NVIDIA GPU)更佳,但若无显卡,也可使用 CPU 运行。

博主使用的服务器配置如下:

  • CPU:E5-2696 v2
  • 内存:64G
  • 硬盘:512G SSD
  • 显卡:无(纯 CPU 运行)

Docker 安装 Ollama

Ollama 支持 Docker 安装,极大简化了部署流程。以下是具体步骤:

  1. 创建 docker-compose.yaml 文件

    新建一个 docker-compose.yaml 文件,内容如下:

    yaml 复制代码
    version: '3'
    services:
      ollama:
        image: ollama/ollama
        container_name: ollama
        ports:
          - "11434:11434"
        volumes:
          - ./data:/root/.ollama
        restart: always
  2. 启动 Ollama

    在终端中运行以下命令启动 Ollama:

    bash 复制代码
    docker compose up -d

    或(如果使用旧版 Docker Compose):

    bash 复制代码
    docker-compose up -d
  3. 验证安装

    访问 http://IP:11434,如果看到提示 Ollama is running,说明安装成功。

  4. GPU 支持(可选)

    如果机器支持 GPU,可以在 docker-compose.yaml 中添加 GPU 参数。参考 Ollama Docker Hub 页面 获取更多信息。


使用 Ollama 部署大模型

Ollama 安装完成后,需要下载大模型。以下是具体步骤:

  1. 进入容器

    运行以下命令进入容器:

    bash 复制代码
    docker exec -it ollama /bin/bash
  2. 下载大模型

    Ollama 模型库 中找到所需模型,例如下载阿里千问 2 模型:

    bash 复制代码
    ollama run qwen2
  3. 命令行对话

    模型下载并运行后,可以通过命令行与模型进行对话。


Ollama 常用命令

以下是 Ollama 的一些常用命令:

  • 运行指定大模型ollama run llama3:8b-text
  • 查看本地大模型列表ollama list
  • 查看运行中的大模型ollama ps
  • 删除本地指定大模型ollama rm llama3:8b-text
  • 查看帮助ollama -h

大模型体验

博主测试了多个模型,得出以下使用感受:

  • Llama 模型:对中文支持不友好。
  • Phi3:3.8b:微软推出的小模型,支持多语言,但 3.8b 版本表现较弱。
  • GLM4/Qwen2:对中文支持较好。
  • 模型参数:参数越小,模型表现越差。7b 及以上模型基本可以正常对话。

将 Ollama 接入 one-api

one-api 是一个开源 AI 中间件服务,可以聚合多家大模型 API,提供统一的 OpenAI 调用方法。

  1. 安装 one-api

    参考 one-api 官方项目地址 进行安装。

  2. 添加 Ollama 渠道

    在 one-api 后台 >> 渠道 >> 添加新渠道:

    • 类型:Ollama
    • 渠道 API 地址http://IP:11434
    • 模型:已下载的本地大模型名称
    • 密钥:随意填写(Ollama 默认无鉴权)
  3. 调用测试

    使用以下命令测试调用:

    bash 复制代码
    curl https://ai.xxx.com/v1/chat/completions \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer sk-xxx" \
      -d '{
        "model": "qwen2",
        "messages": [
          {
            "role": "system",
            "content": "You are a helpful assistant."
          },
          {
            "role": "user",
            "content": "Hello!"
          }
        ]
      }'
    • ai.xxx.com 替换为 one-api 的域名。
    • sk-xxx 替换为 one-api 创建的令牌。

遇到的问题

博主在使用 stream 方式调用 one-api Ollama 时,返回空白。通过降级 one-api 版本至 0.6.6 解决此问题。


安全风险

由于 Ollama 默认无鉴权机制,部署到服务器上存在安全隐患。以下是两种提高安全性的方法:

  1. Linux 内置防火墙

    • 将 Docker 部署 Ollama 的网络模式改为 host
    • 通过防火墙限制仅允许指定 IP 访问 11434 端口。
  2. Nginx 反向代理

    • 将 Ollama 的端口映射为 127.0.0.1:11434
    • 使用 Nginx 反向代理,并设置 IP 白名单和黑名单。

结语

Ollama 作为一款开源工具,为用户提供了便捷的本地大模型部署和调用方式。通过 Docker 安装与部署,用户可以快速上手并灵活使用各类大型模型。然而,由于 Ollama 缺乏内置鉴权机制,用户在生产环境中需采取适当的安全措施。未来若能完善鉴权机制,Ollama 将成为 AI 开发者的得力助手。

相关推荐
秋98 小时前
从 Python 后端工程师转型 AI Engineer(AI 工程化)的完整补课清单(2026实战版)
开发语言·人工智能·python
lularible8 小时前
从沙子到车辙(7.4):《兰亭集序》的启示
开源·嵌入式·汽车电子
啦啦啦_99998 小时前
5. 迁移学习
人工智能·机器学习·迁移学习
A.说学逗唱的Coke8 小时前
【AI·Coding】TDD × SDD × AI Coding:从“测试驱动“到“规范驱动“的智能协作实践
人工智能·驱动开发·tdd
云烟成雨TD8 小时前
Spring AI Alibaba 1.x 系列【78】沙箱(Sandbox)
java·人工智能·spring
Soari8 小时前
开源项目解析 openmed —— 面向医疗智能应用的 OpenMed 开源平台
开源
tq10868 小时前
基于SLIP的防幻觉的指南
人工智能
甲维斯9 小时前
Kimi版超级玛丽效果“惊人”,配额不足5厘米!
前端·人工智能
console.log('npc')10 小时前
AI前端工程与生成式UI学习路线
前端·人工智能·ui
秋910 小时前
3年经验Python后端转AI Engineer:3个月实战转型计划(2026版)
开发语言·人工智能·python