ドキュメント

イメージ

マシンが起動するイメージ。SSH と定番のツールを備えた Arrakis イメージか、公開またはプライベートの独自イメージです。

Arrakis イメージ

ほかのイメージを選ばない限り、マシンは Arrakis イメージで起動します。どれも公式のベースイメージに、SSH、ログインバナー、日常的に使うツール(git、git-lfs、tmux、htop、nvtop、rsync、curl、wget、jq、エディター)を加えたものです。どの SSH セッションでも Python にパスが通っています。

イメージ内容Docker イメージ
PyTorch 2.14(デフォルト)PyTorch 2.14.1, CUDA 13.0, Python 3.12, Ubuntu 24.04goodailabs/arrakis:pytorch-2.14.1-cuda13.0
PyTorch 2.14 と CUDA ツールキット上記に加えて nvcc、CUDA ヘッダー、コンパイラーgoodailabs/arrakis:pytorch-2.14.1-cuda13.0-devel
CUDA 13.0 ツールキットCUDA 13.0.3、cuDNN 9、nvcc、Python 3.12、Ubuntu 24.04goodailabs/arrakis:cuda-13.0.3-devel
Ubuntu 26.04Python 3.14。GPU ドライバーはマシン側のものを使いますgoodailabs/arrakis:ubuntu-26.04

CUDA 13.0 は pip install torch で入るビルドと同じなので、PyTorch 向けにビルドされた wheel がそのまま使えます。Blackwell を含め、Arrakis のすべてのマシンで動作します。どのマシンにも 580 系以降の NVIDIA ドライバーが入っています。イメージは Docker Hub で公開されているので、手元のコンピューターでも同じイメージをプルできます。デフォルトは goodailabs/arrakis:latest です。

ログインすると、マシンの GPU、イメージ、ディスクの空き容量が表示されます:

設定
  6 × NVIDIA RTX A4000, 16 GB each
  PyTorch 2.14.1, CUDA 13.0, Python 3.12.3, Ubuntu 24.04.5 LTS
  32 CPU cores, 125 GB memory, 412 GB free in /workspace

作業は /workspace で行います。マシンを停止すると、/workspace を含め、マシン上のすべてが削除されます。

独自のイメージ

vLLM、SGLang、NVIDIA NGC のコンテナ、チーム独自のイメージなど、公開・プライベートを問わずどんなイメージでも使えます。

  • Images で Add an image を選び、vllm/vllm-openai:v0.11.0 のように docker pull に渡す形式で貼り付けます。公開イメージなら、レンタル時に Your own image を選んで指定することもできます。
  • Arrakis はまずイメージのレジストリに問い合わせます。イメージが存在し、プルでき、linux/amd64 のビルドがあることが条件です。入力ミスや誤ったトークンは、課金の前に拒否されます。
  • 対応レジストリ:Docker Hub、GitHub(ghcr.io)、Amazon ECR と ECR Public、Google(Artifact Registry と gcr.io)、Azure(azurecr.io)、NVIDIA NGC(nvcr.io)、Quay、GitLab、Microsoft(mcr.microsoft.com)。独自のレジストリも使えます:Harbor、Artifactory、Nexus、セルフホストの GitLab や Quay など、公開 DNS 名で到達できるレジストリならどれでも使えます(例:registry.example.com:5000/team/app:v1)。
  • どのイメージにも起動時に SSH が追加されるので、いつもと同じように root でログインできます。イメージにはシェルが必要です。
  • マシンでの初回起動時にイメージがダウンロードされます。大きなイメージほど時間がかかり、12 GB のイメージなら、遅いネットワークでは 10〜20 分かかることがあります。

プライベートイメージ

イメージを追加するときに It's private: log in to pull it にチェックを入れ、docker login に渡すのと同じログイン情報を入力します。Arrakis は保存前にそのログイン情報でイメージを確認し、暗号化して保管し、レンタル時にこのイメージをプルするためだけに使います。パスワードが再び表示されることはありません。

レジストリユーザー名パスワードまたはトークン
Docker HubDocker Hub のユーザー名読み取り専用の個人用アクセストークン
GitHub (ghcr.io)GitHub のユーザー名read:packages のみを付与したクラシックトークン
Amazon ECR(<account>.dkr.ecr.<region>.amazonaws.com)アクセスキー ID対応するシークレットアクセスキー
Google (<region>-docker.pkg.dev, gcr.io)_json_keyArtifact Registry Reader ロールを付与したサービスアカウントの JSON キー
Azure(<name>.azurecr.io)リポジトリトークンまたはサービスプリンシパルそのパスワード(プル権限のみ)
NVIDIA NGC (nvcr.io)$oauthtokenNGC の API キー
GitLab(registry.gitlab.com)デプロイトークンのユーザー名read_registry を付与したデプロイトークン
Quayロボットアカウントそのトークン
独自のレジストリそのレジストリのユーザー名そのパスワードまたはトークン
  • Amazon ECR:イメージのプルしかできない AWS ユーザーを使ってください(AmazonEC2ContainerRegistryReadOnly ポリシー)。Arrakis はレンタルのたびに、キーを aws ecr get-login-password が出力するものと同じ、12 時間有効な新しいプル用ログイン情報に交換します。そのため、マシンがキーそのものを目にすることはありません。
  • 独自のレジストリ:マシンはどこにあってもレジストリから直接プルするため、レジストリは公開インターネット上で、公的な認証局(Let's Encrypt など)の証明書を使った HTTPS で応答する必要があります。VPN や IP 許可リストの内側にあるレジストリには到達できず、自己署名証明書のレジストリは拒否されます。
  • 読み取り専用のトークンを使ってください。マシンはそのトークンでプルし、レンタル終了後もイメージがそのマシンにキャッシュとして残る場合があります。シークレットはイメージに含めず、実行時に渡してください。
  • トークンを変更するには、イメージの横にある Change login を選ぶか、新しいトークンで同じイメージをもう一度保存します。イメージを削除すると、Arrakis が保管していたそのログイン情報はすべての場所から削除されます。

起動時の動作

選択肢実行されるもの用途
Wait for me to log in(デフォルト)何も実行しません。マシンはログインを待ちます学習、ノートブックなど、SSH から始めるものすべて
Run the image's commandイメージ自身のエントリーポイントとコマンドvLLM、TGI、SGLang などのサーバー
Run a command指定した 1 行のコマンド(例:python -m http.server 8000)自動で始まるジョブ

コマンドが終了すると、そのマシンにはもう接続できません。迷ったら Wait for me to log in を選んでください。

マシン上のサーバーには SSH 経由でアクセスします:

シェル
ssh -L 8000:localhost:8000 root@<host> -p <port>
curl localhost:8000/v1/models

環境変数

イメージには KEY=value の組を 1 行に 1 つずつ追加できます。これらはイメージと一緒に保存されるため、シークレットは含めず、代わりに SSH で設定してください(例:セッション内で export HF_TOKEN=...)。

CLI、API、エージェントから

シェル
arrakis images list
arrakis images add vllm/vllm-openai:v0.11.0 --start image
arrakis instances create --node-id <node> --image vllm/vllm-openai:v0.11.0 --start image --termination-hours 2

プライベートイメージにはログイン情報を添えます。トークンは docker login と同じく標準入力で渡します:

シェル
echo "$GITHUB_TOKEN" | arrakis images add ghcr.io/acme/trainer:v3 --username acme-bot --password-stdin
arrakis instances create --node-id <node> --template-id <image id> --termination-hours 2
シェル
curl -X POST $ARRAKIS_URL/v1/instances -H "Authorization: Bearer $ARRAKIS_TOKEN" -H "Content-Type: application/json" \
  -d '{"node_id": "<node>", "name": "vllm", "termination_hours": 2, "ssh_public_key": "ssh-ed25519 AAAA...",
       "image": "vllm/vllm-openai:v0.11.0", "start": "image"}'
  • GET /v1/templates は Arrakis イメージと自分のイメージを一覧表示し、POST /v1/templates はイメージを保存します(image、start、command、environment、プライベートイメージの場合は registry_username と registry_password)。パスワードは書き込み専用で、レスポンスに表示されるのは private と registry_username です。両方を指定して PATCH /v1/templates/{id} を呼ぶと、ログイン情報が置き換わります。
  • POST /v1/instances は、template_id、または任意の公開 image と start の組み合わせで起動します。
  • MCP では、list_images がイメージを一覧表示し(プライベートイメージには印が付きます)、rent_gpu は template_id または image を受け付けます。

エージェントとして読んでいますか?このページの Markdown 版をどうぞ。