mcpField
D
docker

docker

github.com/companion-incクラウド・DevOps10.0k122 回インストール今日更新
リポジトリ

docker について

Feynmanをホスト側に残したまま、Dockerコンテナ内で研究コードを実行するスキルです。プロジェクトファイルをマウントし、実験結果をホストに同期します。

主な機能

  1. 01コンテナ内で研究コマンドを実行
  2. 02プロジェクトファイルのマウントと結果同期
  3. 03言語に応じたベースイメージの選択
  4. 04GPUワークロードへの対応
  5. 05反復実験でコンテナを再利用

活用シーン

  1. 01論文リポジトリのコード実行
  2. 02ホストを変更せずにパッケージを導入
  3. 03反復実験の実行
  4. 04ネットワークワークロードの隔離

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/companion-inc/feynman --skill docker

インストール後、Claude Code で/dockerを入力して読み込まれたか確認します。

詳細

Docker サンドボックス

Feynman はホスト上に置いたまま、Docker コンテナ内で研究コードを実行します。コンテナにはプロジェクトファイルが渡され、コマンドを実行し、結果は同期されます。

使用する場面

  • /replicate または /autoresearch で、実行環境として「Docker Sandbox」を選択する場合
  • 論文のリポジトリに含まれる信頼できないコードを実行する場合
  • パッケージのインストールやシステム状態の変更を伴う実験
  • Feynman のワークフローで研究コードを安全に、または隔離して実行するよう求められた場合

仕組み

  1. 研究コードに適したベースイメージをビルドするか、プルします
  2. プロジェクトディレクトリをコンテナにマウントします
  3. コンテナ内で実験コマンドを実行します
  4. 結果はマウントされたディレクトリに書き戻されます

コンテナ内でコマンドを実行する

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/DLpytorch/pytorch:latest または tensorflow/tensorflow:latest-gpu
Python 汎用python:3.11
Node.jsnode:20
R/統計rocker/r-ver:4
Juliajulia: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 にアクセスするには、Docker に NVIDIA Container Toolkit を設定する必要があります

コメント