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

相关推荐
AI.NET 极客圈20 分钟前
.NET 原生驾驭 AI 新基建实战系列(四):Qdrant ── 实时高效的向量搜索利器
数据库·人工智能·.net
用户214118326360227 分钟前
dify案例分享--告别手工录入!Dify 工作流批量识别电子发票,5分钟生成Excel表格
前端·人工智能
SweetRetry28 分钟前
前端依赖管理实战:从臃肿到精简的优化之路
前端·人工智能
Icoolkj36 分钟前
Komiko 视频到视频功能炸裂上线!
人工智能·音视频
LLM大模型38 分钟前
LangChain篇-提示词工程应用实践
人工智能·程序员·llm
TiAmo zhang40 分钟前
人机融合智能 | “人智交互”跨学科新领域
人工智能
算家计算1 小时前
6GB显存玩转SD微调!LoRA-scripts本地部署教程,一键炼出专属AI画师
人工智能·开源
YYXZZ。。1 小时前
PyTorch——非线性激活(5)
人工智能·pytorch·python
孤独野指针*P1 小时前
释放模型潜力:浅谈目标检测微调技术(Fine-tuning)
人工智能·深度学习·yolo·计算机视觉·目标跟踪
橙色小博1 小时前
python中的经典视觉模块:OpenCV(cv2)全面解析
人工智能·opencv·计算机视觉