基于 Docker 的 veRL 环境安装与开发
| 字段 | 内容 |
|---|---|
| 作者/整理 | 基于公开课程资料整理 |
| 来源 | 五道口纳什 |
| 日期 | 2025 |

引言
本期介绍基于 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 工程的基础设施。先把环境复制问题解决,再去优化训练速度,通常更划算。
总结与延伸
- Docker 解决了环境依赖冲突问题
- 镜像 \(\to\) 容器 \(\to\) 磁盘挂载的工作流
- VSCode Remote 连接容器实现本地开发体验