Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Docker 容器化部署最佳实践,包含 Dockerfile 编写、多阶段构建、镜像优化和容器编排
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-17 | ✓→✗ | ▼ Worse | 154% | 0% |
| case-01 | ✓→✓ | = Same ✓ | 34% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 311% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 46% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 184% | 0% |
本技能提供 Docker 容器化部署的完整指南,涵盖 Dockerfile 编写规范、多阶段构建、镜像优化、GPU 容器配置、容器编排等核心实践。
第一阶段(builder)安装依赖,第二阶段只复制运行时文件,可减少 40-60% 镜像体积。使用 python:3.11-slim 作为基础镜像。
NVIDIA 使用 nvidia/cuda:12.1.0-runtime-ubuntu22.04 基础镜像,运行时加 --gpus all。摩尔线程使用 mthreads/musa 基础镜像。Docker Compose 中通过 deploy.resources.devices 配置 GPU。
使用 docker-compose.yml 定义多容器服务:推理服务(--gpus all)、Nginx 反向代理、Redis 缓存、SRS 流媒体。通过 volumes 挂载模型和数据,depends_on 控制启动顺序。
| 优化手段 | 效果 | 说明 | |---------|------|------| | 多阶段构建 | 减少 40-60% | 只复制运行时文件 | | Alpine 基础镜像 | 减少 70% | 注意 glibc 兼容性 | | .dockerignore | 减少构建上下文 | 排除不需要的文件 | | 合并 RUN 层 | 减少层数 | 连接多个命令 | | --no-cache-dir | 减少缓存 | pip install 时不缓存 |
docker build 构建镜像,docker run --gpus all 运行 GPU 容器,docker-compose up -d 编排部署,docker logs 查看日志,docker exec 进入容器调试。
| 问题 | 原因 | 解决方案 | |------|------|---------| | GPU 容器无法访问 GPU | NVIDIA Container Toolkit 未安装 | 安装 nvidia-container-toolkit | | 镜像体积过大 | 未用多阶段构建 | 拆分 builder 和 runtime 阶段 | | 容器 OOM | 内存限制过小 | 调整 mem_limit | | 构建缓存失效 | Dockerfile 顺序问题 | 将变化少的层放前面 | | 容器时区不对 | 未设置时区 | 设置 TZ=Asia/Shanghai | | 摩尔线程 GPU 不可见 | render 节点未映射 | 映射 /dev/dri/renderDxxx |
Other measured skills in the registry, with their headline benchmark lift.