把 Dockerfile 写好,能让镜像更小、构建更快、缓存命中率更高。本条是日常编写 Dockerfile 时的速查清单。
RUN apt-get install 合并成一条(用 && 连接),减少层数。每条 RUN 是一层,层越多镜像越大。apt-get install 后加 rm -rf /var/lib/apt/lists/*,pip install 加 --no-cache-dir,别把包管理器的缓存打进镜像。package==1.2.3 精确锁版本,而不是 package>=1.2.0,保证跨机器构建一致。不写 .dockerignore 会把 .git、node_modules、__pycache__、数据集、模型权重全部打进镜像,体积爆炸且可能泄露敏感信息。最少要忽略:.git、*.pyc、__pycache__、.venv、data/、*.bin、*.safetensors。
nvidia/cuda:12.x.x-cudnn8-runtime-ubuntu22.04 这种,别自己装 CUDA。详细原理见正文第二章 2.1「镜像分层设计」。