跳转至

基于 Docker 的 veRL 环境安装与开发

LaTeX 源码 · 备用 PDF

字段 内容
作者/整理 基于公开课程资料整理
来源 五道口纳什
日期 2025

基于 Docker 的 veRL 环境安装与开发

引言

本期介绍基于 Docker 的 veRL 安装方式,实现无痛的环境配置。

为什么用 Docker?

传统的 pip install 方式经常遇到 Flash Attention 和 PyTorch 版本依赖冲突。Docker 提供了隔离的、可复现的环境,避免了这些问题。

Docker 基本概念

镜像与容器

  • Image(镜像):只读模板,包含操作系统和软件环境
  • Container(容器):镜像的运行实例,可读写
  • 关系类似于类和对象

宿主机与容器

开发环境:Mac(本地终端)\(\to\) 远程 GPU Server \(\to\) Docker 容器中运行 veRL。通过 VSCode/Cursor 连接远程容器,实现本地开发体验。

核心命令

docker run -it --rm -v <host>:<container> -w <workdir> <image>:<tag> <cmd>

  • -it:交互式终端
  • --rm:退出后删除容器
  • -v:磁盘挂载(宿主机目录映射到容器)
  • -w:设置工作目录

本章小结

Docker 是管理复杂 ML 环境的最佳实践。veRL 官方提供了 Docker 镜像,可快速搭建训练环境。

落地建议:环境先稳定,再谈训练效率

对初学者来说,Docker 的最大价值不是“更高级”,而是让训练环境可复制。尤其在远程 GPU + 本地 IDE 的工作流里,只要镜像、挂载和工作目录定义清楚,大部分环境问题都能被提前消掉。

推荐的最小工作流

  • 先用官方镜像验证依赖是否完整
  • 再用挂载目录保存代码和实验输出
  • 最后再接入 VSCode Remote 做日常开发

本章小结

Docker 不是附属工具,而是 ML 工程的基础设施。先把环境复制问题解决,再去优化训练速度,通常更划算。

总结与延伸

  1. Docker 解决了环境依赖冲突问题
  2. 镜像 \(\to\) 容器 \(\to\) 磁盘挂载的工作流
  3. VSCode Remote 连接容器实现本地开发体验