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

相关推荐
酌沧7 分钟前
AI做美观PPT:3步流程+工具测评+避坑指南
人工智能·powerpoint
狂师11 分钟前
啥是AI Agent!2025年值得推荐入坑AI Agent的五大工具框架!(新手科普篇)
人工智能·后端·程序员
星辰大海的精灵13 分钟前
使用Docker和Kubernetes部署机器学习模型
人工智能·后端·架构
victory043116 分钟前
SpiceMix enables integrative single-cell spatial modeling of cell identity 文章解读
人工智能·深度学习
新智元20 分钟前
半数清华,8 位华人 AI 天团集体投奔 Meta!奥特曼:砸钱抢人不如培养死忠
人工智能·openai
新智元22 分钟前
全球顶尖 CS 论文惊爆 AI「好评密令」!哥大等 14 所高校卷入,学术圈炸锅
人工智能·openai
l0sgAi27 分钟前
vLLM在RTX50系显卡上部署大模型-使用wsl2
linux·人工智能
DDliu28 分钟前
花半个月死磕提示词后,我发现:真正值钱的不是模板,是这套可复用的结构化思维
人工智能
腾讯云开发者28 分钟前
AI 浪潮下的锚与帆:工程师文化的变与不变 | 架构师夜生活
人工智能
JoernLee28 分钟前
机器学习算法:支持向量机SVM
人工智能·算法·机器学习