07 - AI 开发者常用技巧
核心你已经掌握了。这一章是几个 AI 开发场景里特别用得上的实用技巧,了解即可,用到时再回来查。
1. 数据卷 -v:模型/数据不要打包进镜像
AI 项目经常有几个 GB 的模型文件。如果把模型 COPY 进镜像,镜像会巨大无比,每次改代码都要重新打包,非常痛苦。
正确做法:模型放在主机上,用 -v 挂载进容器。
docker run -d -p 8000:8000 \
-v /home/me/models:/app/models \
my-ai-app
-v 主机目录:容器目录:把主机的/home/me/models挂到容器里的/app/models。- 好处:模型不进镜像,镜像小;换模型不用重新 build;容器内外共享同一份数据。
记忆:代码进镜像,大文件(模型、数据集)用
-v挂载。
2. 环境变量 -e:管理 API Key 等配置
调用大模型 API 需要密钥,千万不要把密钥写死在代码里、打进镜像。用环境变量传进去:
docker run -d -p 8000:8000 \
-e OPENAI_API_KEY=sk-xxxxxx \
my-ai-app
代码里用 os.getenv("OPENAI_API_KEY") 读取。这样同一个镜像,不同环境用不同的密钥,安全又灵活。
3. 后台运行与排错
docker run -d ... # -d 后台运行,不占终端
docker logs ai # 看日志
docker logs -f ai # 实时跟踪日志(-f = follow)
docker exec -it ai bash # 进容器内部排查问题
排错三板斧:docker ps 看在不在跑 → docker logs 看报什么错 → docker exec 进去查。
4. 直接用现成的 AI 镜像
很多 AI 工具/框架官方都提供了镜像,拿来即用,省去配环境:
pytorch/pytorch:官方 PyTorch 环境,省去装 PyTorch + CUDA 的麻烦。ollama/ollama:一条命令在本地跑大模型。例如:
docker run -d -p 11434:11434 --name ollama ollama/ollama
docker exec -it ollama ollama run llama3
- 很多向量数据库(如
qdrant、chroma)也有官方镜像,做 RAG 时直接拉起来用。
5. 用 GPU(需要 NVIDIA 显卡)
想让容器用上 GPU 跑模型,加一个 --gpus all:
docker run --gpus all -d my-ai-app
前提:主机要装好 NVIDIA 驱动和 NVIDIA Container Toolkit。这块配置略复杂,用到时单独查官方文档即可,这里先知道”有这么个东西”。
6. 让镜像更小、构建更快(进阶意识)
- 用
-slim版本的基础镜像(如python:3.11-slim)而不是完整版。 - 善用
.dockerignore排除无关文件。 - 把不常变的步骤(装依赖)放前面,常变的(复制代码)放后面,利用缓存。
这些不用现在深究,知道”镜像可以优化”就够了。
小结
| 场景 | 用什么 |
|---|---|
| 挂载模型/数据 | -v 主机目录:容器目录 |
| 传 API Key/配置 | -e KEY=value |
| 后台运行 + 排错 | -d + docker logs + docker exec |
| 跑大模型 | 现成镜像如 ollama/ollama |
| 用 GPU | --gpus all |
最后一章,给你指一条继续进阶的路:当你需要同时跑多个容器时,用 docker-compose。
上一章 ← 06 - Docker 真香时刻 | 下一章 → 08 - 下一步:docker-compose