# Unsloth per Docker installieren

Erfahren Sie, wie Sie unsere Docker-Container mit allen vorinstallierten Abhängigkeiten für eine sofortige Installation verwenden. Keine Einrichtung erforderlich, einfach starten und mit dem Training beginnen!

Unsloth Docker-Image: [**`unsloth/unsloth`**](https://hub.docker.com/r/unsloth/unsloth)

{% hint style="success" %}
Unsloth Studio verwendet jetzt denselben Cache wie Notebooks und Skripte, um unnötige erneute Downloads zu vermeiden.
{% endhint %}

### ⚡ Schnellstart

{% stepper %}
{% step %}
**Installieren Sie Docker und das NVIDIA Container Toolkit.**

Installieren Sie Docker über [Linux](https://docs.docker.com/engine/install/) oder [Desktop](https://docs.docker.com/desktop/) (andere).\
Dann installieren Sie [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://797013937-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 %}
**Führen Sie den Container aus.**

[**`unsloth/unsloth`**](https://hub.docker.com/r/unsloth/unsloth) ist das einzige Docker-Image von Unsloth.

```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://797013937-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 %}
**Greifen Sie auf Jupyter Lab zu**

Gehen Sie zu [http://localhost:8888](http://localhost:8888/) und öffnen Sie Unsloth.

<figure><img src="https://797013937-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>

Greifen Sie auf die `unsloth-notebooks` Registerkarten zu, um Unsloth-Notebooks anzuzeigen.

<div><figure><img src="https://797013937-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://797013937-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 %}
**Beginnen Sie mit Unsloth zu trainieren**

Wenn Sie neu sind, folgen Sie unserer Schritt-für-Schritt- [Fine-Tuning-Anleitung](https://unsloth.ai/docs/de/los-gehts/fine-tuning-llms-guide), [RL-Anleitung](https://unsloth.ai/docs/de/los-gehts/reinforcement-learning-rl-guide) oder speichern/kopieren Sie einfach eines unserer vorgefertigten [Notebooks](https://unsloth.ai/docs/de/los-gehts/unsloth-notebooks).

<figure><img src="https://797013937-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 %}

#### 📂 Container-Struktur

* `/workspace/work/` — Ihr eingebundener Arbeitsordner
* `/workspace/unsloth-notebooks/` — Beispiel-Notebooks für Fine-Tuning
* `/home/unsloth/` — Benutzer-Home-Verzeichnis

### 📖 Verwendungsbeispiel

#### Vollständiges Beispiel

```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-Schlüssel einrichten

Wenn Sie kein SSH-Schlüsselpaar haben:

```bash
# Neues Schlüsselpaar generieren
ssh-keygen -t rsa -b 4096 -f ~/.ssh/container_key

# Öffentlichen Schlüssel in docker run verwenden
-e "SSH_KEY=$(cat ~/.ssh/container_key.pub)"

# Per SSH verbinden
ssh -i ~/.ssh/container_key -p 2222 unsloth@localhost
```

### 🦥Warum Unsloth-Container?

* **Zuverlässig**: Kuratierte Umgebung mit stabilen und gepflegten Paketversionen. Nur 7 GB komprimiert (im Vergleich zu 10–11 GB anderswo)
* **Sofort einsatzbereit**: Vorinstallierte Notebooks in `/workspace/unsloth-notebooks/`
* **Sicher**: Läuft sicher als Nicht-Root-Benutzer
* **Universell**: Kompatibel mit allen transformerbasierten Modellen (TTS, BERT usw.)

### **Unsloth erkennt oder verwendet meine GPU nicht**

Wenn das Modell Ihre GPU speziell für Docker nicht verwendet, versuchen Sie Folgendes:

Das neueste Image manuell ziehen:

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

* Den Container mit GPU-Zugriff starten:
  * `docker run`: `--gpus all`
  * Docker Compose: `capabilities: [gpu]`
* Stellen Sie unter Linux sicher, dass das NVIDIA Container Toolkit installiert ist.
* Unter Windows:
  * Prüfen Sie, ob `nvcc --version` mit der in `nvidia-smi`
  * angezeigten CUDA-Version übereinstimmt. [Folgen Sie:](https://docs.docker.com/desktop/features/gpu/)

### ⚙️ Erweiterte Einstellungen

```bash
# SSH-Schlüsselpaar generieren
ssh-keygen -t rsa -b 4096 -f ~/.ssh/container_key

# Mit dem Container verbinden
ssh -i ~/.ssh/container_key -p 2222 unsloth@localhost
```

| Variable           | Beschreibung                                     | Standard  |
| ------------------ | ------------------------------------------------ | --------- |
| `JUPYTER_PASSWORD` | Jupyter-Lab-Passwort                             | `unsloth` |
| `JUPYTER_PORT`     | Jupyter-Lab-Port innerhalb des Containers        | `8888`    |
| `SSH_KEY`          | Öffentlicher SSH-Schlüssel zur Authentifizierung | `Keine`   |
| `USER_PASSWORD`    | Passwort für `unsloth` Benutzer (sudo)           | `unsloth` |

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

* Jupyter Lab: `-p 8000:8888`
* SSH-Zugriff: `-p 2222:22`

{% hint style="warning" %}
**Wichtig**: Verwenden Sie Volume-Mounts, um Ihre Arbeit zwischen Containerläufen zu erhalten.
{% 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
```

### **🔒 Sicherheitshinweise**

* Container läuft standardmäßig als Nicht-Root- `unsloth` Benutzer
* Verwenden Sie `USER_PASSWORD` für sudo-Operationen innerhalb des Containers
* SSH-Zugriff erfordert Public-Key-Authentifizierung
