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 开发者的得力助手。

相关推荐
聚客AI4 分钟前
大模型学习进阶路线图:从Prompt到预训练的四阶段全景解析
人工智能·llm·掘金·日新计划
晓13138 分钟前
第七章 OpenCV篇——角点检测与特征检测
人工智能·深度学习·计算机视觉
DeepSeek大模型官方教程38 分钟前
NLP之文本纠错开源大模型:兼看语音大模型总结
大数据·人工智能·ai·自然语言处理·大模型·产品经理·大模型学习
MidJourney中文版1 小时前
深度报告:中老年AI陪伴机器人需求分析
人工智能·机器人
王上上2 小时前
【论文阅读41】-LSTM-PINN预测人口
论文阅读·人工智能·lstm
智慧化智能化数字化方案2 小时前
69页全面预算管理体系的框架与落地【附全文阅读】
大数据·人工智能·全面预算管理·智慧财务·智慧预算
PyAIExplorer2 小时前
图像旋转:从原理到 OpenCV 实践
人工智能·opencv·计算机视觉
Wilber的技术分享2 小时前
【机器学习实战笔记 14】集成学习:XGBoost算法(一) 原理简介与快速应用
人工智能·笔记·算法·随机森林·机器学习·集成学习·xgboost
19892 小时前
【零基础学AI】第26讲:循环神经网络(RNN)与LSTM - 文本生成
人工智能·python·rnn·神经网络·机器学习·tensorflow·lstm
burg_xun2 小时前
【Vibe Coding 实战】我如何用 AI 把一张草图变成了能跑的应用
人工智能