
llama.cpp Docker 部署完整指南从一条命令跑通服务到生产加固【免费下载链接】llama.cppLLM inference in C/C项目地址: https://gitcode.com/GitHub_Trending/ll/llama.cpp照做完这篇你会在一台普通 Linux 机器上拥有一个带健康检查、可鉴权、可被 OpenAI 客户端直连的 llama.cpp 容器化推理服务。前置条件先自检一遍宿主机已安装并正在运行 Dockerdocker info无报错CPU 路线无额外依赖走 NVIDIA 显卡需另装 nvidia-container-toolkit一个 GGUF 量化模型文件例如llama-3.1-8b-instruct-q4_k_m.gguf先放到宿主机的~/llama-docker/models/目录8080 端口空闲不空闲就换 8081 映射第一层 · 跑通一条命令拉起 llama-server 容器目标只有一个让模型 → 容器 → API这条链路活起来用最小的步骤拿到一个能被验证活着的服务。先别碰 GPUCPU 镜像足够完成这件事。执行下面这条命令docker run -d --name llama-min \ -p 8080:8080 \ -v ~/llama-docker/models:/models \ ghcr.io/ggml-org/llama.cpp:server \ -m /models/llama-3.1-8b-instruct-q4_k_m.gguf \ --host 0.0.0.0 --port 8080 -c 4096三个关键点对应三类问题-p 8080:8080把宿主机端口接到容器内的llama-server-v ~/llama-docker/models:/models决定容器里能不能看到模型-m必须以/models/开头与挂载点对齐。验证只有一条命令curl -s http://localhost:8080/health返回{status: ok}即代表模型加载完成、服务就绪 ✅ 返回 503 说明模型还在加载等几秒再试。拿到ok就可以进入下一层没有ok就先跳到文末的故障定位一节。第二层 · 跑快按硬件选镜像用参数把速度拉满这一层解决慢。先选对运行环境再拧参数。镜像选型对号入座官方镜像按功能 × 加速后端两个维度打 tag完整矩阵见 docs/docker.md推理服务只需要看server系列你的硬件镜像 tag宿主机额外要求纯 CPUghcr.io/ggml-org/llama.cpp:server无NVIDIAghcr.io/ggml-org/llama.cpp:server-cudanvidia-container-toolkit运行时加--gpus allAMDghcr.io/ggml-org/llama.cpp:server-rocmROCm 驱动与运行时显卡没有专用驱动ghcr.io/ggml-org/llama.cpp:server-vulkan无几乎通吃各类 GPU拿不准就先留在server链路通了再换 GPU 后缀版本docker run的其余参数原样保留即可。关键参数速查调优只盯这 5 个llama-server原生参数参数作用建议起步值调优方向--n-gpu-layers放进显存的层数99尽量全放OOM 就降到 20~40-c上下文长度决定记得多长4096长文再翻倍显存随之上涨-b提示词处理批大小512提示词越长收益越明显-tCPU 线程数等于物理核心数多核机器别给少了--flash-attn注意力优化on/off/autoon长上下文场景收益明显调优方法论只有一条先按建议值全部跑通之后一次只动一个参数对比前后生成速度变慢就回滚。逐个参数试出来的经验比背参数表靠谱得多。第三层 · 跑稳Compose 编排、健康检查、鉴权与内网这一层解决断、乱、裸奔进程挂了谁来拉起、编排系统怎么探活、请求谁来认、容器能不能碰外网。下面这份docker-compose.yaml一次落地五件事直接可用services: llama-inference: image: ghcr.io/ggml-org/llama.cpp:server-cuda container_name: llama-inference restart: unless-stopped ports: - 8080:8080 volumes: - ./models:/models environment: - LLAMA_API_KEYchange-me-32chars - LLAMA_ARG_ENDPOINT_METRICS1 command: - -m - /models/llama-3.1-8b-instruct-q4_k_m.gguf - --host - 0.0.0.0 - --port - 8080 - -c - 4096 - --n-gpu-layers - 99 - --flash-attn - on deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] networks: - llama-net healthcheck: test: [CMD, curl, -f, http://localhost:8080/health] interval: 30s timeout: 10s retries: 3 networks: llama-net: driver: bridge internal: true每一项各管一摊配置项解决的问题restart: unless-stopped宿主机重启或进程崩溃后自动拉起不用人工值守deploy.resources...devices显式预留 1 张 GPU 卡避免容器抢不到卡或抢错卡healthcheck每 30 秒探测/health连续 3 次失败才标记不健康编排系统据此摘流LLAMA_API_KEY对应--api-key开启后非公开端点必须带 Bearer 密钥LLAMA_ARG_ENDPOINT_METRICS1对应--metrics开启 Prometheus 格式/metricsPrometheus 把metrics_path指向/metrics即可抓取internal: true容器禁止访问外网内部服务不暴露在互联网面⚠️internal: true是个取舍点它切断容器的出网能力如果你的流程需要容器在线拉取模型就去掉这一行并保留密钥防护/health本身是公开端点交给编排系统探测没有问题。接入客户端怎么连服务跑稳之后客户端只有两个入口要记住原生 API 和 OpenAI 兼容 API。原生流式补全-N让 curl 实时刷出 tokencurl -N http://localhost:8080/completion \ -H Content-Type: application/json \ -d {prompt:用一句话解释什么是容器化:,stream:true,n_predict:64}OpenAI 兼容入口现有基于 OpenAI SDK 的程序改个 base_url 就能切换过来curl http://localhost:8080/v1/chat/completions \ -H Content-Type: application/json \ -d {model:llama-3.1-8b-instruct,messages:[{role:user,content:你好你是谁}],max_tokens:128}生产环境开了密钥的话两条请求都补上鉴权头-H Authorization: Bearer 你的keySDK 则填进api_key字段。其余端点不复杂/slots看并发槽位、/embeddings做向量化、/props查模型属性全量清单在 tools/server/README.md 里按端点逐个写了请求体和响应格式。故障定位从现象直接跳到动作现象大概率原因处理动作8080 连不上容器启动即退出或宿主机端口被占先看docker logs端口冲突就改映射为8081:8080报找不到模型文件挂载点与-m路径没对上确认-m以/models/开头且文件真在宿主机./models里进程被 OOM 杀掉-c或--n-gpu-layers撑爆内存/显存降-c或层数或换更低量化版本GPU 镜像却跑在 CPU 上缺 nvidia-container-toolkit 或漏了--gpus all装好 toolkit 后重启 Docker补上--gpus all再跑加了密钥后一律 401客户端没带鉴权头请求补Authorization: Bearer key需要更多线索时这条比翻文档快docker logs --tail 100 llama-inference边界与延伸阅读适合单机私有部署 1B~几十 B 量级的量化模型环境被锁死在镜像里机器迁移时只带走models/目录。不适合公开互联网上的高并发流量——llama-server本质是单进程服务横向扩容的正路是跑多个实例、前面挂一层 Nginx 或负载均衡而不是往单容器里塞更多请求频繁做 HF 格式转换时把镜像 tag 换成full-cuda就同时拥有推理和转换工具链。继续深挖建议按这份索引查位置能查到什么docs/docker.md全部镜像 tag 矩阵、本地构建自定义镜像的方法tools/server/README.md每个 HTTP 端点的请求体/响应格式、全部启动参数与环境变量.devops/各加速后端cuda、rocm、vulkan 等的 Dockerfile改镜像行为时的源头tools/server/llama-server实现源码行为存疑时读代码最准【免费下载链接】llama.cppLLM inference in C/C项目地址: https://gitcode.com/GitHub_Trending/ll/llama.cpp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考