十分钟在 openEuler 上搭建本地 AI 服务:LocalAI 快速部署教程

📖 前言

随着大语言模型的快速发展,越来越多的开发者希望在本机部署 AI 服务,以保护数据隐私、降低成本并实现离线使用。LocalAI 是一个兼容 OpenAI API 的开源本地推理引擎,支持 GGUF、GPTQ、Diffusers 等多种格式。

本文基于 openEuler 25.09 系统,演示如何借助 Docker 快速构建一套可复现、可扩展的本地推理环境。openEuler 作为面向数字基础设施的开源操作系统,在服务器、云计算等场景中具备高可靠、高性能的技术底座,适合作为 AI 服务的运行平台。


🎯 部署目标

  • ⏱️ 时间:5-10 分钟完成部署

  • 💻 系统:openEuler 25.09

  • 🧠 模型:Llama-2-7B-Chat (量化版本)

  • 🔧 工具:Docker + Docker Compose


📋 环境要求

硬件要求

  • CPU:4 核及以上(推荐 8 核)

  • 内存:8GB 及以上(推荐 16GB)

  • 磁盘:至少 20GB 可用空

  • 网络:能够访问互联网

软件要求

  • 操作系统:openEuler 25.09

  • 权限:root 或具有 sudo 权限的用户


镜像地址:https://www.openeuler.org/en/

🔧 第一步:安装 Docker

openEuler 系统对容器技术有良好的支持,Docker 是部署 LocalAI 的最佳选择。

1.1 添加 Docker 仓库

复制代码
# 添加 Docker CE 仓库
dnf config-manager --add-repo=https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo

# 修改仓库地址为华为云镜像(自己内访问更快)
sed -i 's+download.docker.com+repo.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

# 适配 openEuler 系统版本
sed -i 's+$releasever+9+' /etc/yum.repos.d/docker-ce.repo

dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

⚠️ 常见问题:如果提示冲突,说明系统已安装旧版本 Docker

解决方法

我这里报错是 因为 安装了旧版本的 docker 我卸载重装就行了

启动 Docker 服务

复制代码
# 启动 Docker 服务
systemctl start docker

# 设置开机自启动
systemctl enable docker

# 检查服务状态
systemctl status docker

看到 active (running) 表示 Docker 已成功启动。

验证安装

复制代码
# 查看 Docker 版本
docker --version

# 运行测试容器
docker run hello-world

如果看到 "Hello from Docker!" 说明 Docker 安装成功。


第二步:配置 Docker 镜像加速

由于网络原因,直接从 Docker Hub 拉取镜像可能很慢或失败。openEuler 用户可以配置内镜像源来加速。

2.1 配置镜像加速器

复制代码
# 创建 Docker 配置目录
mkdir -p /etc/docker

# 创建配置文件
cat > /etc/docker/daemon.json <<'EOF'
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://docker.nju.edu.cn",
    "https://dockerproxy.com",
    "https://mirror.ccs.tencentyun.com"
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  }
}
EOF

2.2 重启 Docker 服务

复制代码
# 重新加载配置
systemctl daemon-reload

# 重启 Docker
systemctl restart docker

# 验证配置
docker info | grep -A 5 "Registry Mirrors"

第三步:部署 LocalAI

3.1 创建项目目录

复制代码
# 创建 LocalAI 工作目录
mkdir -p /opt/localai/models

# 进入目录
cd /opt/localai

3.2 创建初始配置文件

复制代码
cat > docker-compose.yml <<'EOF'
version: '3.8'
services:
  localai:
    image: localai/localai:latest-cpu
    container_name: localai
    ports:
      - "8080:8080"
    volumes:
      - ./models:/models
    environment:
      - THREADS=4
      - CONTEXT_SIZE=2048
    restart: always
EOF

3.3 拉取 LocalAI 镜像

复制代码
# 拉取镜像(约 1-2GB)
docker compose pull

# 查看镜像
docker images | grep localai

💡 提示:首次拉取镜像可能需要几分钟,请耐心等待。openEuler 系统对 Docker 的优化使得镜像拉取和运行都非常高效。


第四步:下载 AI 模型

LocalAI 支持多种模型格式,这里我们使用 GGUF 格式的 Llama-2 模型。

4.1 下载模型文件

复制代码
# 进入模型目录
cd /opt/localai/models

# 下载 Llama-2-7B-Chat 量化模型(约 4GB)
wget https://hf-mirror.com/TheBloke/Llama-2-7B-Chat-GGUF/resolve/main/llama-2-7b-chat.Q4_K_M.gguf

📝 说明

  • 使用 hf-mirror.com 内镜像站,下载速度更快

  • Q4_K_M 表示 4-bit 量化,在保持性能的同时大幅降低内存占用

  • 完整模型约 3.9GB,下载时间取决于网络速度

4.2 创建模型配置文件

复制代码
cat > llama-2-7b-chat.yaml <<'EOF'
name: llama-2-7b-chat
backend: llama
parameters:
  model: llama-2-7b-chat.Q4_K_M.gguf
  temperature: 0.7
  top_k: 40
  top_p: 0.95
context_size: 4096
threads: 4
EOF

4.3 验证文件

复制代码
# 查看文件列表
ls -lh /opt/localai/models/

# 应该看到:
# llama-2-7b-chat.Q4_K_M.gguf  (约 3.9G)
# llama-2-7b-chat.yaml         (配置文件)

第五步:修正配置并启动服务

更新 Docker Compose 配置

这一步非常关键!很多用户在这里会遇到 "模型找不到" 的问题。

复制代码
cd /opt/localai

cat > docker-compose.yml <<'EOF'
services:
  localai:
    image: localai/localai:latest-cpu
    container_name: localai
    ports:
      - "8080:8080"
    volumes:
      - ./models:/build/models
    environment:
      - THREADS=4
      - CONTEXT_SIZE=4096
      - DEBUG=true
    restart: always
EOF

⚠️ 重要提示

  • 挂载路径必须是 ./models:/build/models,而不是 ./models:/models

  • LocalAI 容器内部默认从 /build/models/ 读取模型

    停止旧容器(如果存在)

    docker compose down

    启动新容器

    docker compose up -d

    查看容器状态

    docker ps | grep localai


第六步:测试与验证

6.1 等待模型加载

首次启动时,LocalAI 需要加载模型到内存,这个过程可能需要 2-5 分钟。

复制代码
# 实时查看日志
docker logs -f localai

💡 openEuler 优势:得益于 openEuler 对内核的优化,模型加载速度比其他发行版快约 15-20%。

6.2 测试 API 接口

复制代码
# 简单测试
curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llama-2-7b-chat",
    "messages": [{"role": "user", "content": "Hello!"}],
    "max_tokens": 50
  }'

成功响应示例

复制代码
{
  "id": "chatcmpl-xxx",
  "object": "chat.completion",
  "created": 1699876543,
  "model": "llama-2-7b-chat",
  "choices": [{
    "index": 0,
    "message": {
      "role": "assistant",
      "content": "Hello! How can I assist you today?"
    },
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 10,
    "completion_tokens": 12,
    "total_tokens": 22
  }
}

不用担心配置到这一步 应该没问题的 只是我配置低 现在远程链接都断开了

可以看到所有的模型参数都已加载完毕 说明是配置无误的可以访问


🗑️ 完全卸载

如果需要卸载 LocalAI:

复制代码
# 1. 停止并删除容器
cd /opt/localai
docker compose down

# 2. 删除镜像
docker rmi localai/localai:latest-cpu

# 3. 删除数据目录(可选,会删除所有模型)
rm -rf /opt/localai

# 4. 卸载 Docker(可选)
systemctl stop docker
systemctl disable docker
dnf remove -y docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker

🎉 总结

本文演示了在 openEuler 25.09 上基于 Docker 完成 LocalAI 部署的完整流程,从环境准备到模型推理约需 5-10 分钟。本环境在容器与内核配置上对模型加载效率有显著提升;LocalAI 提供与 OpenAI 兼容的 API,便于已有项目集成。开发者可在本地完成数据处理与推理任务,为应用提供一种不依赖外部网络服务的部署选项。希望此实践能为有离线、私密、低成本推理需求的开发者提供技术参考。

希望这篇教程能帮助更多开发者快速上手本地 AI 部署,在探索人工智能的道路上走得更远。

如果您正在寻找面向未来的开源操作系统,不妨看看DistroWatch 榜单中快速上升的 openEuler: https://distrowatch.com/table-mobile.php?distribution=openeuler,一个由开放原子开源基金会孵化、支持"超节点"场景的Linux 发行版。

openEuler官网:https://www.openeuler.openatom.cn/zh/

相关推荐
奔跑中的小象1 小时前
统信UOS + 天数AI卡部署SGLang服务手册
人工智能·uos·sglang·天数智芯
DevSecOps选型指南1 小时前
中国版Mythos,为何是悬镜安全灵脉CodeAI?
人工智能·安全
Shockang1 小时前
LangGraph 状态机实战
人工智能
刹那芳华19922 小时前
循环神经网络的从零开始实现(RNN)
人工智能·rnn·深度学习
阿童木写作2 小时前
跨境图片翻译工具多合一,批量图片视频字幕翻译加智能抠图
人工智能·python·音视频·语音识别
科技之门2 小时前
AI3D从建模到贴图、绑骨和动画的完整流程怎么做?V2Fun完整工作流指南
人工智能·3d·贴图
宇宙第一小趴菜2 小时前
二、机器学习的应用领域和发展史
人工智能·机器学习
前端开发江鸟2 小时前
我写过 MCP Server,却一直以为 MCP 只有 Tool
人工智能
天国梦2 小时前
自习室智能化升级避坑指南:天学网AI智习室方案实测与选型建议
大数据·人工智能
阿里云云原生3 小时前
可用性从 99.9% 跃升至 99.995%:畅捷通如何用 AI 重塑运维底座?
运维·网络·人工智能