news 2026/7/1 20:29:31

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>:3000ip 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/6/26 3:09:46

联想 YOGA 27 2023 独显版升级福利!3TB 存储空间解锁攻略来了

作为联想 YOGA 系列的热门机型&#xff0c;2023 款 YOGA 27 凭借出色的性能、高清视觉体验和灵活的使用场景&#xff0c;成为不少办公党、设计师和家庭用户的心头好。而近期官方推出的独显版 1TB 升 3TB 配置升级活动&#xff0c;更是让这款机型的性价比再上一个台阶&#xff0…

作者头像 李华
网站建设 2026/7/1 13:55:26

ThinkPad 更新 KB5012170 后弹窗 BitLocker 密钥?两种解决方法速收藏

使用 ThinkPad T14s Gen4 AMD 机型且升级 Windows 11 KB5012170 补丁的小伙伴注意啦&#xff01;不少用户反馈更新后会意外弹出 “BitLocker Recovery” 页面&#xff0c;要求输入恢复密钥才能继续使用&#xff0c;突如其来的弹窗不仅打乱工作节奏&#xff0c;还让不少人陷入 “…

作者头像 李华
网站建设 2026/6/23 5:51:08

数字检测图像识别项目数据集 阿拉伯数字检测数据集 1234567890 深度学习YOLOV8模型如何训练数字检测数据集

阿拉伯数字-数字检测图像识别项目数据集 数据集包含0到9这10个数字的手写或打印图像&#xff0c;适合训练数字检测和分类的计算机视觉模型。数据集分为训练集、验证集和测试集&#xff0c;比例分别为87%、8%和4%&#xff0c;共计1181张图片。所有标注均已处理好&#xff0c;拿…

作者头像 李华
网站建设 2026/6/25 23:05:48

从GAP到剪枝:CNN全连接层分类技术演进与实战指南

从GAP到剪枝&#xff1a;CNN全连接层分类技术演进与实战指南 引言 在卷积神经网络&#xff08;CNN&#xff09;的辉煌成就中&#xff0c;全连接层&#xff08;Fully Connected Layer&#xff0c;简称FC层&#xff09;长期扮演着至关重要的“最终裁决者”角色。它将卷积层和池化…

作者头像 李华
网站建设 2026/6/29 19:08:52

CNKI是什么

作为一项整合了海量中文知识资源的技术与服务&#xff0c;CNKI&#xff08;中国知网&#xff09;的设计逻辑&#xff0c;可以理解为构建了一个覆盖广泛学术领域、互联互通的知识网络。下面从几个方面&#xff0c;为你梳理它的核心要素、功能与应用。1. 它是什么&#xff1a;核心…

作者头像 李华