08 - 下一步:docker-compose
恭喜你坚持到这里!Docker 的核心你已经全掌握了。这一章给你指个方向,不需要现在精通。
一个新问题
真实的 AI 应用,往往不只一个容器。比如一个 RAG 问答系统可能包含:
- 一个 AI 后端服务(FastAPI)
- 一个 向量数据库(如 Qdrant)
- 一个 前端(如 React)
- 也许还有一个 Redis 做缓存
如果用 docker run 一个个手动启动,要敲好几条又长又难记的命令,还要管它们之间的网络、启动顺序……很麻烦。
docker-compose 来救场
docker-compose 让你把”要跑哪些容器、各自怎么配置”写进一个 docker-compose.yml 文件,然后一条命令全部拉起。
一个简化的例子:
services:
api:
build: .
ports:
- "8000:8000"
environment:
- OPENAI_API_KEY=${OPENAI_API_KEY}
vectordb:
image: qdrant/qdrant
ports:
- "6333:6333"
然后:
docker compose up -d # 一条命令,所有服务一起启动
docker compose down # 一条命令,全部停止并清理
是不是比一个个 docker run 清爽多了?
你现在该知道的
- 是什么:用一个 yml 文件管理一组容器,一键启停。
- 什么时候用:当你的应用需要”多个容器协同工作”时。
- 现在要不要学:不急。先把单容器(前面学的)玩熟,等真的需要多服务协作时,再花一两个小时学 compose 就够了。
学习路线建议
你现在的水平已经能搞定大部分日常开发了。如果想继续进阶,按这个顺序:
- ✅ 单容器(你已掌握):build、run、Dockerfile —— 这是 80% 的日常。
- ⏭️ docker-compose:多容器编排,本地开发多服务时用。
- 🔜 镜像优化:多阶段构建、减小体积。
- 🔜 部署上线:把镜像部署到云服务器 / 容器平台。
- 🔜 Kubernetes:大规模容器集群管理(等真的需要了再说,别一开始就卷这个)。
写在最后
记住这门课最核心的一句话:
Docker 把”应用 + 环境”打包成集装箱,让它一次打包、到处运行。
对你们做 AI 开发的人来说,这意味着:再也不用为”在我电脑上能跑”而崩溃,环境配一次、全队全平台通用,部署交付变得无比简单。
去动手多敲几遍命令,把 example/ 跑通,你就真正入门了。加油!
上一章 ← 07 - AI 开发者常用技巧 | 下一章 → 09 - Compose 解决什么问题