关于 docker
用于在 Docker 容器中运行研究代码的 skill,Feynman 保留在主机上。项目文件挂载到容器,实验结果会同步回主机。
主要功能
- 01在容器中运行研究命令
- 02挂载项目文件并同步结果
- 03按语言选择基础镜像
- 04支持 GPU 工作负载
- 05迭代实验中复用容器
适用场景
- 01运行论文仓库中的代码
- 02安装软件包而不更改主机
- 03执行迭代实验
- 04隔离网络工作负载
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ companion-inc/ feynman --skill docker安装后在 Claude Code 中输入/docker确认已加载。
详细介绍
Docker 沙箱
在 Docker 容器中运行研究代码,同时让 Feynman 保留在主机上。容器会获取项目文件并运行命令,结果会同步回来。
适用场景
- 用户在
/replicate或/autoresearch中选择“Docker 沙箱”作为执行环境 - 运行论文仓库中的不可信代码
- 会安装软件包或修改系统状态的实验
- 用户要求为 Feynman 工作流安全或隔离地运行研究代码
工作原理
- 为研究代码构建或拉取适当的基础镜像
- 将项目目录挂载到容器中
- 在容器内运行实验命令
- 结果写回挂载目录
在容器中运行命令
对于 Python 研究代码(最常见):
docker run --rm -v "$(pwd)":/workspace -w /workspace python:3.11 bash -c "
pip install -r requirements.txt &&
python train.py
"
对于包含 Dockerfile 的项目:
docker build -t feynman-experiment .
docker run --rm -v "$(pwd)/results":/workspace/results feynman-experiment
对于 GPU 工作负载:
docker run --rm --gpus all -v "$(pwd)":/workspace -w /workspace pytorch/pytorch:latest bash -c "
pip install -r requirements.txt &&
python train.py
"
选择基础镜像
| 研究类型 | 基础镜像 |
|---|---|
| Python ML/DL | pytorch/pytorch:latest 或 tensorflow/tensorflow:latest-gpu |
| Python 通用 | python:3.11 |
| Node.js | node:20 |
| R / 统计学 | rocker/r-ver:4 |
| Julia | julia:1.10 |
| 多语言 | 使用手动安装的 ubuntu:24.04 |
持久化容器
对于迭代式实验(例如 /autoresearch),请创建命名容器,而不是使用 --rm。根据实验选择一个描述性名称:
docker create --name <name> -v "$(pwd)":/workspace -w /workspace python:3.11 tail -f /dev/null
docker start <name>
docker exec <name> bash -c "pip install -r requirements.txt"
docker exec <name> bash -c "python train.py"
这样可以在多轮迭代之间保留已安装的软件包。使用以下命令清理:
docker stop <name> && docker rm <name>
说明
- 挂载的工作区会自动将结果同步回主机
- 容器默认启用网络;如需完全隔离,请添加
--network none - 如需访问 GPU,必须使用 NVIDIA Container Toolkit 配置 Docker
评论
支持 Markdown