# Docker で Unsloth をインストール

依存関係がすべて事前インストールされたDockerコンテナを使って、すぐにインストールできる方法を学びましょう。セットアップは不要で、実行して学習を始めるだけです！

UnslothのDockerイメージ： [**`unsloth/unsloth`**](https://hub.docker.com/r/unsloth/unsloth)

{% hint style="success" %}
Unsloth Studioは、不要な再ダウンロードを避けるため、ノートブックやスクリプトと同じキャッシュを共有するようになりました。
{% endhint %}

### ⚡ クイックスタート

{% stepper %}
{% step %}
**DockerとNVIDIA Container Toolkitをインストールします。**

Dockerをインストール： [Linux](https://docs.docker.com/engine/install/) または [デスクトップ](https://docs.docker.com/desktop/) （その他）。\
その後、 [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html#installation):

<pre class="language-bash"><code class="lang-bash"><strong>export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.17.8-1
</strong>sudo apt-get update &#x26;&#x26; sudo apt-get install -y \
  nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}
</code></pre>

<figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fgit-blob-41cae231ed4761f844ce9836e03b17aabd7c803c%2Fnvidia%20toolkit.png?alt=media" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
**コンテナを実行します。**

[**`unsloth/unsloth`**](https://hub.docker.com/r/unsloth/unsloth) は、Unsloth唯一のDockerイメージです。

```bash
docker run -d -e JUPYTER_PASSWORD="mypassword" \
  -p 8888:8888 -p 8000:8000 -p 2222:22 \
  -v $(pwd)/work:/workspace/work \
  --gpus all \
  unsloth/unsloth
```

<figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fgit-blob-2b50d78c5d54eaf189c0a40d46c405585ea23082%2Fdocker%20run.png?alt=media" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
**Jupyter Labにアクセス**

へ移動して [http://localhost:8888](http://localhost:8888/) を開き、Unslothを起動します。

<figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fgit-blob-828df0a668fd94025c1193c24a7f09c1d58dcbd8%2Fjupyter.png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

にアクセスして `unsloth-notebooks` タブを開くと、Unslothのノートブックが表示されます。

<div><figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fgit-blob-e7a3f620a3ec5bff335632ff9b0cb422f76528a1%2FScreenshot_from_2025-09-30_21-38-15.png?alt=media" alt=""><figcaption></figcaption></figure> <figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fgit-blob-531882c33eb96dec24e2d7673471d6a3928a3951%2FScreenshot_from_2025-09-30_21-39-41.png?alt=media" alt=""><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
**Unslothで学習を開始する**

初めての方は、ステップごとの [ファインチューニングガイド](https://unsloth.ai/docs/jp/meru/fine-tuning-llms-guide), [RLガイド](https://unsloth.ai/docs/jp/meru/reinforcement-learning-rl-guide) を参照するか、用意済みの [ノートブック](https://unsloth.ai/docs/jp/meru/unsloth-notebooks).

<figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fgit-blob-665f900b008991ddcd8fdabb773b292de3c41e72%2FScreenshot_from_2025-09-30_21-40-29.png?alt=media" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

#### 📂 コンテナ構成

* `/workspace/work/` — マウントされた作業ディレクトリ
* `/workspace/unsloth-notebooks/` — ファインチューニング用のサンプルノートブック
* `/home/unsloth/` — ユーザーのホームディレクトリ

### 📖 使用例

#### 完全な例

```bash
docker run -d -e JUPYTER_PORT=8000 \
  -e JUPYTER_PASSWORD="mypassword" \
  -e "SSH_KEY=$(cat ~/.ssh/container_key.pub)" \
  -e USER_PASSWORD="unsloth2024" \
  -p 8000:8000 -p 2222:22 \
  -v $(pwd)/work:/workspace/work \
  --gpus all \
  unsloth/unsloth
```

#### SSHキーの設定

SSHキーペアを持っていない場合：

```bash
# 新しいキーペアを生成
ssh-keygen -t rsa -b 4096 -f ~/.ssh/container_key

# docker runで公開鍵を使用
-e "SSH_KEY=$(cat ~/.ssh/container_key.pub)"

# SSHで接続
ssh -i ~/.ssh/container_key -p 2222 unsloth@localhost
```

### 🦥 なぜUnslothコンテナなのか？

* **信頼性**: 安定して保守されたパッケージバージョンを備えた厳選環境。圧縮サイズはわずか7 GB（他では10〜11 GB）
* **すぐに使える**: 事前インストール済みのノートブックが `/workspace/unsloth-notebooks/`
* **安全**: 非rootユーザーとして安全に実行
* **汎用**: すべてのトランスフォーマーベースのモデル（TTS、BERTなど）と互換

### **UnslothがGPUを検出していない、または使用していない**

DockerでモデルがGPUを特に使用していない場合は、次を試してください：

最新イメージを手動で取得：

```bash
 docker pull unsloth/unsloth:latest
```

* GPUアクセスを有効にしてコンテナを起動：
  * `docker run`: `--gpus all`
  * Docker Compose： `capabilities: [gpu]`
* Linuxでは、NVIDIA Container Toolkitがインストールされていることを確認してください。
* Windowsでは：
  * 次を確認してください `nvcc --version` が、以下に表示されるCUDAのバージョンと一致することを `nvidia-smi`
  * こちらに従ってください： <https://docs.docker.com/desktop/features/gpu/>

### ⚙️ 詳細設定

```bash
# SSHキーペアを生成
ssh-keygen -t rsa -b 4096 -f ~/.ssh/container_key

# コンテナに接続
ssh -i ~/.ssh/container_key -p 2222 unsloth@localhost
```

| 変数                 | 説明                          | デフォルト     |
| ------------------ | --------------------------- | --------- |
| `JUPYTER_PASSWORD` | Jupyter Labのパスワード           | `unsloth` |
| `JUPYTER_PORT`     | コンテナ内のJupyter Labポート        | `8888`    |
| `SSH_KEY`          | 認証用のSSH公開鍵                  | `なし`      |
| `USER_PASSWORD`    | のパスワード `unsloth` ユーザー（sudo） | `unsloth` |

```bash
-p <host_port>:<container_port>
```

* Jupyter Lab： `-p 8000:8888`
* SSHアクセス： `-p 2222:22`

{% hint style="warning" %}
**重要**: コンテナ実行間で作業を保持するには、ボリュームマウントを使用してください。
{% endhint %}

```bash
-v <local_folder>:<container_folder>
```

```bash
docker run -d -e JUPYTER_PORT=8000 \
  -e JUPYTER_PASSWORD="mypassword" \
  -e "SSH_KEY=$(cat ~/.ssh/container_key.pub)" \
  -e USER_PASSWORD="unsloth2024" \
  -p 8000:8000 -p 2222:22 \
  -v $(pwd)/work:/workspace/work \
  --gpus all \
  unsloth/unsloth
```

### **🔒 セキュリティ नोट**

* コンテナはデフォルトで非rootとして実行されます `unsloth` ユーザー
* 使用 `USER_PASSWORD` コンテナ内でsudo操作を行うために
* SSHアクセスには公開鍵認証が必要です
