AI大模型应用开发之容器化部署

专门为新手设计的「容器化部署 + AI 服务落地」完整指南

搞懂 Docker 在干什么 → 会写 Dockerfile → 会用 Docker Compose 编排 → 知道 K8s 在什么时候该用 → 能把 RAG + Agent 跑成一个"像样的服务"


一、先一句话搞懂容器化在干什么

容器化 = 把"代码 + 运行环境"一起打包,在哪都能跑

📌 你不再关心:

  • Python 版本
  • 依赖冲突
  • "我这能跑,你那不行"

二、Docker 是什么?(新手版)

1️⃣ Docker 的三个核心概念(必背)

名词 一句话
镜像(Image) 程序的"安装包"
容器(Container) 正在运行的程序
Dockerfile 制作镜像的说明书

📌 口诀:

Dockerfile 做镜像,镜像跑容器


2️⃣ Docker 镜像分层原理(非常重要)

📌 一句话

Docker 镜像是"一层一层叠起来"的


🌰 类比(强烈推荐)

做一个汉堡:

text 复制代码
面包底
+ 牛肉
+ 生菜
+ 酱

Docker 镜像:

text 复制代码
基础系统层
+ Python 层
+ 依赖层
+ 你的代码层

📌 分层有什么好处?

1️⃣ 复用

  • Python 层不用每次重新下载

2️⃣ 构建快

  • 改代码只重新构建"代码层"

3️⃣ 省空间

📌 记忆口诀:

没变的层不重建


三、Docker 镜像怎么写?(最小可用)

1️⃣ 一个 AI 服务常见 Dockerfile

dockerfile 复制代码
FROM python:3.10-slim

WORKDIR /app

COPY requirements.txt .
RUN pip install -r requirements.txt

COPY . .

CMD ["python", "main.py"]

📌 新手只要理解:

  • FROM:基础环境
  • RUN:装依赖
  • COPY:拷代码
  • CMD:启动程序

四、Docker Compose 是干什么的?

📌 一句话

Docker Compose = 一次启动多个 Docker 服务


🌰 类比

你要启动:

  • RAG 服务
  • Agent 服务
  • 向量数据库
  • Redis

不用一个个 docker run

👉 Compose 帮你一起管


Compose 的三大好处

1️⃣ 一个 docker-compose up

2️⃣ 自动建网络

3️⃣ 服务之间用名字通信

📌 口诀:

一个文件,起一堆服务


五、RAG + Agent 服务的整体架构(新手版)

text 复制代码
用户
 ↓
Agent API
 ↓
RAG 服务
 ↓
向量数据库(Chroma / FAISS)
 ↓
大模型 API

六、用 Docker Compose 部署 RAG + Agent(完整示例)

🎯 目标

一条命令,启动一个 AI 系统


1️⃣ 项目结构(推荐)

text 复制代码
project/
├─ agent/
│  ├─ main.py
│  └─ Dockerfile
├─ rag/
│  ├─ main.py
│  └─ Dockerfile
├─ data/
├─ docker-compose.yml

2️⃣ agent/Dockerfile

dockerfile 复制代码
FROM python:3.10-slim
WORKDIR /app
COPY . .
RUN pip install langchain openai
CMD ["python", "main.py"]

3️⃣ rag/Dockerfile

dockerfile 复制代码
FROM python:3.10-slim
WORKDIR /app
COPY . .
RUN pip install langchain chromadb sentence-transformers
CMD ["python", "main.py"]

4️⃣ docker-compose.yml(核心)

yaml 复制代码
version: "3.8"

services:
  agent:
    build: ./agent
    ports:
      - "8000:8000"
    depends_on:
      - rag

  rag:
    build: ./rag
    volumes:
      - ./data:/data

📌 你现在可以:

bash 复制代码
docker-compose up --build

👉 一个完整 AI 系统启动了


七、什么是"水平扩容"?(非常重要)

📌 一句话

水平扩容 = 多开几份同样的服务,一起干活


🌰 类比

一个客服太忙了?

👉 再来 3 个客服


Docker Compose 怎么扩容?

bash 复制代码
docker-compose up --scale agent=3

📌 现在你有:

  • agent_1
  • agent_2
  • agent_3

⚠️ 注意

  • 需要 负载均衡器(如 Nginx)
  • 服务必须 无状态

八、Kubernetes(K8s)到底是干嘛的?

📌 一句话

K8s = 自动管理"成百上千个容器"的系统


Docker Compose vs K8s(新手理解版)

对比 Compose K8s
学习成本 低 高
本地开发 ✅ ❌
自动扩缩容 ❌ ✅
生产环境 一般 标准

📌 新手建议:

先 Compose,后 K8s


K8s 里和你现在最相关的 3 个概念

概念 类比
Pod 一个容器组
Deployment 管理副本
Service 负载均衡

九、大模型服务如何做"真正的水平扩容"?

📌 核心前提(非常重要)

服务必须是"无状态"的

❌ 不要:

  • 把对话存在内存
  • 把用户状态写死

✅ 要:

  • 状态放 Redis
  • 向量放数据库

标准架构

text 复制代码
负载均衡
 ↓
Agent 容器 × N
 ↓
Redis / 向量数据库

十、新手最容易踩的坑

❌ Dockerfile 把所有东西写一层

❌ Compose 里硬编码 IP

❌ 服务有状态还想扩容

❌ 一开始就上 K8s


十一、终极新手记忆口诀(强烈建议背)

Docker 管环境,
Compose 管服务,
扩容靠无状态,
K8s 管规模。


十二、推荐学习顺序(实用)

1️⃣ 会写 Dockerfile

2️⃣ 会用 docker-compose

3️⃣ 把 RAG 跑成服务

4️⃣ Agent 无状态化

5️⃣ 再学 K8s

十三、参考文档

Docker 官方文档

B 站 "K8s 快速入门"


有任何问题欢迎在评论区交流。

相关推荐
Csvn5 小时前
第 28 章 案例四 多智能体协作系统
人工智能·aigc·agent
code_Bo5 小时前
多 Agent 协作最大的坑不是模型,是失忆
ai编程·cursor·mcp
IT_陈寒5 小时前
Java中equals方法比了个寂寞?原来这才是正确的重写姿势
前端·人工智能·后端
Thneonl5 小时前
Celery 生产踩坑:1000 任务积压与 acks_late 双重执行
后端·python
清桔5 小时前
模型的调用
python
SFLYQ5 小时前
你的数字员工正在苏醒中。。。
agent·ai编程
吴佳浩5 小时前
Agent 怎么做自动化评测?构建端到端的 Agent Evaluation 体系
人工智能·agent·ai编程
火山引擎开发者社区5 小时前
火山引擎云数据库 TiDB 版公测开启,MySQL 架构升级的一站式选择
人工智能
代码方舟5 小时前
Java数据工程:利用天远全网运营商三要素优化线上实名认证合规体验
java·人工智能
颜进强5 小时前
14 · NestJS ExecutionContext 执行上下文:守卫、拦截器、过滤器拿到的"同一个 context",为什么能力不一样?
前端·后端·ai编程