llama.cpp Docker 部署:容器化推理服务搭建
概述
llama.cpp 是 LLaMA 模型的 C/C++ 移植版本,提供了高效的本地推理能力。通过 Docker 容器化部署,可以快速搭建稳定、可移植的 AI 推理服务环境。本文将详细介绍如何使用 Docker 部署 llama.cpp 推理服务,涵盖基础部署、GPU 加速、生产环境配置等场景。
环境准备
系统要求
- Docker Engine 20.10+
- NVIDIA Container Toolkit(如需 GPU 支持)
- 至少 8GB 可用内存
- 20GB+ 磁盘空间(用于模型存储)
目录结构规划
mkdir -p ~/llama-docker
cd ~/llama-docker
mkdir models config logs
Docker 镜像选择
llama.cpp 提供多种 Docker 镜像,根据需求选择:
| 镜像类型 | 描述 | 适用场景 |
|---|---|---|
ghcr.io/ggml-org/llama.cpp:light | 仅包含主可执行文件 | 最小化部署 |
ghcr.io/ggml-org/llama.cpp:full | 包含完整工具链 | 模型转换 + 推理 |
ghcr.io/ggml-org/llama.cpp:server | 仅包含服务器 | HTTP API 服务 |
*-cuda 后缀 | CUDA GPU 支持 | NVIDIA GPU 环境 |
*-rocm 后缀 | ROCm GPU 支持 | AMD GPU 环境 |
基础部署
1. CPU 版本部署
# 拉取最新 server 镜像
docker pull ghcr.io/ggml-org/llama.cpp:server
# 运行基础服务
docker run -d \
--name llama-server \
-p 8080:8080 \
-v $(pwd)/models:/models \
ghcr.io/ggml-org/llama.cpp:server \
-m /models/llama-2-7b.Q4_K_M.gguf \
--host 0.0.0.0 \
--port 8080 \
-c 4096 \
-t 8
2. 模型准备流程
GPU 加速部署
NVIDIA CUDA 环境
# 安装 NVIDIA 容器工具包
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker//nvidia-docker.list | /etc/apt/sources.list.d/nvidia-docker.list
apt-get update && apt-get install -y nvidia-container-toolkit
systemctl restart docker
docker run -d \
--name llama-server-cuda \
--gpus all \
-p 8080:8080 \
-v $()/models:/models \
ghcr.io/ggml-org/llama.cpp:server-cuda \
-m /models/llama-2-7b.Q4_K_M.gguf \
--host 0.0.0.0 \
--port 8080 \
-c 4096 \
--n-gpu-layers 35

