news 2026/9/30 20:44:01

HoRain云--[特殊字符] 大模型服务容器化部署全流程(Docker Compose 实战版)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HoRain云--[特殊字符] 大模型服务容器化部署全流程(Docker Compose 实战版)

🎬 HoRain 云小助手:个人主页

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

目录

⛳️ 推荐

🐳 大模型服务容器化部署全流程(Docker Compose 实战版)

🔧 一、环境准备(5分钟)

📁 二、项目结构(统一目录规划)

🌐 三、方案A:Ollama + Open WebUI(全平台友好)

docker-compose.ollama.yml

🚀 启动命令

⚡ 四、方案B:vLLM + Open WebUI(高性能GPU方案)

docker-compose.vllm.yml

📥 模型准备(宿主机执行)

🚀 启动命令

🔍 五、验证与访问

🛠️ 六、运维锦囊

常用命令

⚠️ 高频问题解决

💡 进阶建议


🐳 大模型服务容器化部署全流程(Docker Compose 实战版)

✅ 覆盖Ollama方案与vLLM方案|含GPU配置|数据持久化|一键启停
📌 适用于 Linux(Ubuntu 22.04+)|Windows WSL2|macOS(Apple Silicon需调整)


🔧 一、环境准备(5分钟)

# 1. 安装 Docker + Docker Compose curl -fsSL https://get.docker.com | sh sudo systemctl enable --now docker sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose # 2. 【仅vLLM方案】安装 NVIDIA Container Toolkit(GPU支持) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart docker # 3. 验证 docker --version # ≥ 24.0 docker-compose --version # ≥ 2.20 nvidia-smi # GPU方案必现驱动信息

📁 二、项目结构(统一目录规划)

llm-deploy/ ├── docker-compose.ollama.yml # 方案A配置 ├── docker-compose.vllm.yml # 方案B配置(需GPU) ├── .env # 环境变量(可选) ├── models/ # 模型存储(vLLM用) │ └── qwen-7b-chat/ # HF格式模型(提前下载) └── data/ # 持久化数据 ├── ollama/ # Ollama模型缓存 └── openwebui/ # WebUI数据库/配置

🌐 三、方案A:Ollama + Open WebUI(全平台友好)

docker-compose.ollama.yml

version: '3.8' services: ollama: image: ollama/ollama:latest container_name: ollama ports: - "11434:11434" volumes: - ./data/ollama:/root/.ollama # 模型持久化 # GPU加速(可选):取消注释下方两行 # deploy: # resources: # reservations: # devices: # - driver: nvidia # count: all # capabilities: [gpu] restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:11434"] interval: 30s timeout: 10s retries: 3 open-webui: image: ghcr.io/open-webui/open-webui:main container_name: open-webui ports: - "3000:8080" volumes: - ./data/openwebui:/app/backend/data environment: - OLLAMA_BASE_URL=http://ollama:11434 # 容器内服务名通信 - WEBUI_AUTH=False # 关闭登录(生产环境建议开启) depends_on: ollama: condition: service_healthy restart: unless-stopped networks: default: name: llm-network

🚀 启动命令

cd llm-deploy docker-compose -f docker-compose.ollama.yml up -d docker-compose -f docker-compose.ollama.yml logs -f # 实时查看日志 # 首次拉取模型(进入Ollama容器执行) docker exec -it ollama ollama pull llama3:8b-instruct-q4_K_M

⚡ 四、方案B:vLLM + Open WebUI(高性能GPU方案)

docker-compose.vllm.yml

version: '3.8' services: vllm: image: vllm/vllm-openai:latest container_name: vllm runtime: nvidia # 关键:启用GPU ports: - "8000:8000" volumes: - ./models:/models # 挂载本地HF模型 command: > --model /models/qwen-7b-chat --port 8000 --tensor-parallel-size 1 --dtype auto --max-model-len 4096 environment: - NVIDIA_VISIBLE_DEVICES=all deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] restart: unless-stopped open-webui: image: ghcr.io/open-webui/open-webui:main container_name: open-webui ports: - "3000:8080" volumes: - ./data/openwebui:/app/backend/data environment: - OPENAI_API_BASE=http://vllm:8000/v1 - OPENAI_API_KEY=sk-vllm-key # vLLM无需验证,但WebUI需占位符 - WEBUI_AUTH=False depends_on: - vllm restart: unless-stopped networks: default: name: llm-network

📥 模型准备(宿主机执行)

# 安装huggingface-hub(宿主机) pip install huggingface-hub # 下载模型到 ./models/qwen-7b-chat huggingface-cli download Qwen/Qwen-7B-Chat --local-dir ./models/qwen-7b-chat --local-dir-use-symlinks False

🚀 启动命令

cd llm-deploy docker-compose -f docker-compose.vllm.yml up -d docker logs -f vllm # 观察模型加载进度(首次较慢)

🔍 五、验证与访问

项目地址验证方式
Open WebUIhttp://localhost:3000浏览器打开,自动加载模型列表
Ollama APIhttp://localhost:11434/api/tagscurl http://localhost:11434/api/tags
vLLM APIhttp://localhost:8000/v1/modelscurl http://localhost:8000/v1/models
健康检查docker-compose ps所有服务状态为 Up

✅成功标志:Open WebUI 界面中 → 设置 → 模型 → 可见可用模型列表


🛠️ 六、运维锦囊

常用命令

# 停止服务 docker-compose -f docker-compose.xxx.yml down # 重建服务(配置修改后) docker-compose -f docker-compose.xxx.yml up -d --force-recreate # 清理无用镜像/卷 docker system prune -a docker volume prune # 查看GPU使用 docker stats --no-stream # 观察vllm容器GPU内存

⚠️ 高频问题解决

问题解决方案
Open WebUI 找不到模型检查环境变量拼写(OLLAMA_BASE_URLvsOPENAI_API_BASE);确认容器网络互通(docker network inspect llm-network)
vLLM 启动报 CUDA error确认nvidia-container-toolkit安装成功;执行docker run --rm --gpus all nvidia/cuda:12.2-base nvidia-smi验证
模型下载慢使用 HF 镜像:export HF_ENDPOINT=https://hf-mirror.com
端口冲突修改 yml 中 ports 的宿主机端口(如 3001:8080)
WSL2 无法访问Windows 防火墙放行端口;浏览器用http://<WSL_IP>:3000(ip addr show eth0查IP)

💡 进阶建议

  1. 安全加固:
    • 启用WEBUI_AUTH=True+ 设置账号密码
    • 用 Nginx 反向代理 + HTTPS(Let's Encrypt)
    • 限制 API 访问 IP(防火墙规则)
  2. 生产部署:
    • 使用docker-compose.prod.yml+ Traefik 做负载均衡
    • 模型存储挂载 NAS/S3
    • 集成 Prometheus 监控 GPU/内存
  3. 混合后端:
    在 Open WebUI 中为不同模型指定不同提供者(设置 → 模型 → 自定义提供者),实现 Ollama 小模型 + vLLM 大模型协同

✅现在执行:

git clone https://github.com/your-repo/llm-deploy-template.git # 可选:使用模板仓库 cd llm-deploy && docker-compose -f docker-compose.ollama.yml up -d

5 分钟后,打开浏览器 →http://localhost:3000→ 开始对话!
遇到问题?提供docker-compose logs open-webui截图,我可精准诊断 🌟

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/30 15:03:59

struct of_device_id

struct of_device_id 是 Linux 设备树&#xff08;Device Tree, DT&#xff09; 机制中&#xff0c;用于驱动与设备树节点进行匹配的核心数据结构&#xff0c;主要在 ARM、ARM64、RISC-V 等现代架构的驱动开发中使用&#xff0c;替代了传统的 platform_device_id 匹配方式&…

作者头像 李华
网站建设 2026/9/30 15:58:50

学术写作新助力:百考通AI如何应对重复率与AIGC双重检测挑战

一、双重检测时代&#xff1a;学术写作面临的新挑战 近年来&#xff0c;随着学术检测技术的不断升级&#xff0c;国内高校和期刊普遍建立了更为严格的论文审核机制。 传统的“查重”已从单纯的文字重复检测&#xff0c;演变为“文字重复率AI生成内容&#xff08;AIGC&#xf…

作者头像 李华
网站建设 2026/9/30 7:34:33

SEW变频器MDX61B0075-5A3-04-00 8279624

孙13665068812SEW MDX61B0075-5A3-04-00 变频器详细介绍 (序列号&#xff1a;8279624) 1. 产品概述与定位 SEW MDX61B0075-5A3-04-00 是 SEW-EURODRIVE 公司生产的 MOVIFIT MDX61B 系列变频器中的一个具体型号。MOVIFIT 系列是 SEW 面向中高端工业应用设计的模块化、多功能变…

作者头像 李华
网站建设 2026/9/30 16:46:11

SEW变频器MDX61B1320-503-04-00 8279748

SEW MDX61B1320-503-04-00 变频器 (8279748) 详细介绍 1. 概述 SEW MDX61B1320-503-04-00 (订货号&#xff1a;8279748) 是德国SEW-EURODRIVE公司生产的 MOVIDRIVE B 系列模块化变频器中的一款特定型号。它代表了该系列中功率等级为 132 kW 的一个配置组合。MOVIDRIVE B 系列…

作者头像 李华
网站建设 2026/9/28 1:34:29

鲜花商城|基于java + vue鲜花商城系统(源码+数据库+文档)

鲜花商城 目录 基于springboot vue鲜花商城系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于springboot vue鲜花商城系统 一、前言 博主介绍&#xff1a;✌️大…

作者头像 李华
网站建设 2026/9/28 20:39:36

如何选择可编程控制器?可编程控制器分类、性能指标介绍

可编程控制器的作用日渐突出&#xff0c;各大器件中均含有可编程控制器。为增进大家对可编程控制器的了解&#xff0c;本文将对可编程控制器选型技巧、可编程控制器分类以及可编程控制器的技术性能指标进行介绍。如果你对本文内容具有兴趣&#xff0c;不妨继续往下阅读哦。一、…

作者头像 李华