> For the complete documentation index, see [llms.txt](https://unsloth.ai/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://unsloth.ai/docs/de/loslegen/install/docker.md).

# Unsloth über Docker installieren

Installiere Unsloth mit unserem offiziellen Docker-Container

Erfahren Sie, wie Sie Modelle mit dem Unsloth-Docker-Container ausführen und trainieren. Keine Einrichtung erforderlich - alle Abhängigkeiten sind vorinstalliert. Ziehen Sie einfach das Image und beginnen Sie, Modelle auf Ihren lokalen NVIDIA- oder AMD-GPUs auszuführen und zu trainieren.

| **NVIDIA** Docker: [**`unsloth/unsloth`**](https://hub.docker.com/r/unsloth/unsloth) | **AMD** Docker: [**`unsloth/unsloth-rocm`**](https://hub.docker.com/r/unsloth/unsloth-rocm) |
| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------- |

{% hint style="success" %}
**NEU Sep. 2026: Der Unsloth-Docker-Container wurde jetzt mit Unsloth Studio und AMD aktualisiert.**

Unsloth nutzt denselben Cache wie Notebooks und Skripte, um unnötige erneute Downloads zu vermeiden.
{% endhint %}

### Schnellstart

Dieser Abschnitt des Leitfadens gilt für Systeme mit NVIDIA-GPUs. Wenn Sie [AMD, siehe hier](#amd-quickstart).

{% tabs %}
{% tab title="Linux / WSL" %}
Um Unsloths Docker auf NVIDIA-GPUs zu erhalten, führen Sie im Terminal Folgendes aus:

```bash
docker run -d --name unsloth --gpus all --ipc=host \
  --ulimit memlock=-1 --ulimit stack=67108864 \
  -p 8000:8000 -p 8888:8888 \
  -e JUPYTER_PASSWORD="mypassword" \
  -v "$PWD":/workspace/host \
  -v "$HOME/.cache/huggingface":/workspace/.cache/huggingface \
  -v unsloth-studio:/opt/unsloth-studio \
  unsloth/unsloth
```

* Führen Sie ihn aus Ihrem Projektordner aus, weil dieser Ordner (`$PWD`) wird zu `/workspace/host`.
* Was die Flags tun: Sie legen die Ports 8000 (Unsloth Studio) und 8888 (JupyterLab) frei; die drei `-v` Flags behalten Ihre Dateien, Modelle und Unsloth-Studio-Daten.
* Voraussetzung: NVIDIA-Treiber 570.26 oder neuer.

<figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fz1bQUO7kRRL6jrzDKsRO%2FiShot_2026-09-17_16.30.18.png?alt=media&amp;token=1a5a23ee-e384-4bc7-b5f5-4cb934989094" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Windows (PowerShell)" %}
Führen Sie Folgendes in PowerShell aus:

```powershell
docker run -d --name unsloth --gpus all --ipc=host `
  --ulimit memlock=-1 --ulimit stack=67108864 `
  -p 8000:8000 -p 8888:8888 `
  -e JUPYTER_PASSWORD="mypassword" `
  -v "${PWD}:/workspace/host" `
  -v "${HOME}/.cache/huggingface:/workspace/.cache/huggingface" `
  -v "unsloth-studio:/opt/unsloth-studio" `
  unsloth/unsloth
```

* Führen Sie ihn aus Ihrem Projektordner aus, weil dieser Ordner (`${PWD}`) wird zu `/workspace/host`.
* Was die Flags tun: Sie legen die Ports 8000 (Unsloth Studio) und 8888 (JupyterLab) frei; die drei `-v` Flags behalten Ihre Dateien, Modelle und Unsloth-Studio-Daten.
* Voraussetzung: NVIDIA-Treiber 570.26 oder neuer.

<figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2F70dKPYWYN9PrkPkMtbdg%2Fimage.png?alt=media&amp;token=5b4a4309-c97b-4e65-8daa-babb312a97ca" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

### Voraussetzungen

Wenn Sie Docker nicht für das NVIDIA Container Toolkit installiert haben, gehen Sie wie folgt vor:

{% tabs %}
{% tab title="Linux / WSL" %}
Installieren [Docker Engine](https://docs.docker.com/engine/install/) oder [Docker Desktop](https://docs.docker.com/desktop/), falls Sie das noch nicht getan haben:

```bash
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh
```

Wenn Sie eine NVIDIA-GPU haben, installieren Sie [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html#installation) falls Sie das noch nicht getan haben:

```bash
curl -fsSL https://raw.githubusercontent.com/unslothai/unsloth/main/docker/install_nvidia_toolkit.sh -o install_nvidia_toolkit.sh && sudo -E bash install_nvidia_toolkit.sh
```

{% endtab %}

{% tab title="Windows" %}
**Installieren Sie Docker Desktop und den NVIDIA-Treiber.**

Installieren [Docker Desktop für Windows](https://docs.docker.com/desktop/setup/install/windows-install/) und den neuesten [NVIDIA-Windows-Treiber](https://www.nvidia.com/Download/index.aspx). \
Dann aktualisieren Sie WSL in PowerShell:

```powershell
wsl --update
```

Wählen Sie in den Docker-Desktop-Einstellungen **Allgemein** und überprüfen Sie, dass **Die auf WSL 2 basierende Engine verwenden** ist aktiviert. Warten Sie, bis die Engine gestartet ist, bevor Sie fortfahren.

<figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FNSQSDRFKVGyePWp7zKZA%2Fimage.png?alt=media&amp;token=0516785a-3fc1-41bc-8690-b98df7085fbf" alt=""><figcaption></figcaption></figure>

Eine separate Installation des NVIDIA Container Toolkit ist nicht erforderlich. [Windows-GPU-Fehlerbehebung](https://docs.docker.com/desktop/features/gpu/).
{% endtab %}
{% endtabs %}

### AMD-Kurzanleitung

Dieser Abschnitt des Leitfadens gilt für Systeme mit AMD-GPUs. Wenn Sie [NVIDIA, siehe hier](#quickstart).

{% tabs %}
{% tab title="Linux" %}
Um Unsloths Docker auf AMD-GPUs zu erhalten, führen Sie im Terminal Folgendes aus:

```bash
GPU_FLAGS="--device /dev/kfd"
[ -e /dev/dri ] && GPU_FLAGS="$GPU_FLAGS --device /dev/dri"
for g in video render; do
  gid=$(getent group "$g" | cut -d: -f3)
  [ -n "$gid" ] && GPU_FLAGS="$GPU_FLAGS --group-add $gid"
done
docker run -d --name unsloth \
  $GPU_FLAGS \
  --ipc=host \
  --ulimit memlock=-1 --ulimit stack=67108864 \
  -p 8000:8000 -p 8888:8888 \
  -e JUPYTER_PASSWORD="mypassword" \
  -v "$PWD":/workspace/host \
  -v "$HOME/.cache/huggingface":/workspace/.cache/huggingface \
  -v unsloth-studio:/opt/unsloth-studio \
  unsloth/unsloth-rocm
```

* Führen Sie ihn aus Ihrem Projektordner aus, weil dieser Ordner (`$PWD`) wird zu `/workspace/host`.
* Was die Flags tun: `$GPU_FLAGS` übergibt die GPU-Geräteknoten und Gruppen-IDs; Ports 8000 (Unsloth Studio) und 8888 (JupyterLab); die drei `-v` Flags behalten Ihre Dateien, Modelle und Unsloth-Studio-Daten.
* Voraussetzung: ein funktionierender `amdgpu` Treiber. Gegen ROCm 7.2 kompiliert, unterstützt RDNA1 und neuer sowie CDNA.
  {% endtab %}

{% tab title="WSL" %}
In WSL werden AMD-GPUs über die DXG-Brücke von WSL2 erreicht. Führen Sie dies innerhalb Ihrer WSL2-Distribution aus, nicht in PowerShell, WSL2 hat kein `/dev/kfd` daher wird die GPU stattdessen als `/dev/dxg` übergeben:

```bash
docker run -d --name unsloth --device /dev/dxg --ipc=host \
  --ulimit memlock=-1 --ulimit stack=67108864 \
  -e HSA_ENABLE_DXG_DETECTION=1 \
  -e LD_LIBRARY_PATH=/usr/lib/wsl/lib:/opt/rocm/lib \
  -p 8000:8000 -p 8888:8888 \
  -e JUPYTER_PASSWORD="mypassword" \
  -v /usr/lib/wsl/lib:/usr/lib/wsl/lib:ro \
  -v "$PWD":/workspace/host \
  -v "$HOME/.cache/huggingface":/workspace/.cache/huggingface \
  -v unsloth-studio:/opt/unsloth-studio \
  unsloth/unsloth-rocm
```

* Führen Sie es innerhalb von WSL2 aus (`wsl -d Ubuntu`), aus Ihrem Projektordner, weil dieser Ordner (`$PWD`) wird zu `/workspace/host`.
* Was die Flags tun: `--device /dev/dxg` und den `/usr/lib/wsl/lib` Mount-Weitergabe leitet die GPU durch WSL2 weiter; Ports 8000 (Unsloth Studio) und 8888 (JupyterLab); die drei `-v` Flags behalten Ihre Dateien, Modelle und Unsloth-Studio-Daten.
* Voraussetzung: der AMD-Windows-Treiber mit WSL2-Unterstützung auf dem Host
  {% endtab %}

{% tab title="Windows (PowerShell)" %}
Führen Sie in PowerShell Folgendes aus:

```powershell
docker run -d --name unsloth --device /dev/dxg --ipc=host `
  --ulimit memlock=-1 --ulimit stack=67108864 `
  -e HSA_ENABLE_DXG_DETECTION=1 `
  -e LD_LIBRARY_PATH=/usr/lib/wsl/lib:/opt/rocm/lib `
  -p 8000:8000 -p 8888:8888 `
  -e JUPYTER_PASSWORD="mypassword" `
  -v "/usr/lib/wsl/lib:/usr/lib/wsl/lib:ro" `
  -v "${PWD}:/workspace/host" `
  -v "${HOME}/.cache/huggingface:/workspace/.cache/huggingface" `
  -v "unsloth-studio:/opt/unsloth-studio" `
  unsloth/unsloth-rocm
```

* Führen Sie ihn aus Ihrem Projektordner aus, weil dieser Ordner (`${PWD}`) wird zu `/workspace/host`.
* Voraussetzung: ein AMD-Windows-Treiber mit WSL2-Unterstützung und Docker Desktop mit der WSL-2-Engine.
  {% endtab %}
  {% endtabs %}

Wenn Sie Docker nicht installiert haben, führen Sie folgenden Befehl aus:

```bash
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh
```

AMD benötigt kein Container Toolkit, nur den `amdgpu` Treiber auf dem Host. Unter Windows installieren Sie Docker Desktop und den AMD-Treiber mit WSL2-Unterstützung.

### 📖 Gebrauchsanleitungen

#### Einrichtung von Unsloth Studio

Unsloth Studio ist vorinstalliert, sodass Sie mit Modellen chatten, sie feinabstimmen und Bilder aus demselben Docker-Container generieren können.

{% stepper %}
{% step %}
**Starten Sie den Unsloth-Container.** \
Führen Sie den vollständigen `docker run` Befehl für Ihr Betriebssystem in **Schnellstart** aus und warten Sie etwa eine Minute, bis der Start abgeschlossen ist. Überspringen Sie dies, wenn Ihr Container bereits läuft.

```bash
docker start unsloth
```

{% endstep %}

{% step %}
**Finden Sie Ihre Passwörter.** \
Wenn Sie Ihr Passwort noch nicht kennen, prüfen Sie die Container-Logs:

```bash
docker logs -f unsloth
```

Achten Sie auf **Unsloth-Container bereit** für Links und Passwortdetails. Drücken Sie **Ctrl+C** um das Verfolgen der Logs zu stoppen; der Container läuft weiter.
{% endstep %}

{% step %}
**Anmelden**

Öffnen [`http://localhost:8000`](http://localhost:8000) und als `unsloth`. Bei der ersten Einrichtung verwenden Sie das generierte Passwort und wählen Sie bei Aufforderung ein neues aus. Andernfalls verwenden Sie Ihr bestehendes Passwort.
{% endstep %}

{% step %}
**Passwort vergessen?**

```bash
docker exec unsloth unsloth studio reset-password --username unsloth
```

Dadurch wird ein neues Passwort generiert, bestehende Sitzungen werden abgemeldet und API-Schlüssel widerrufen. Ein Neustart ist nicht erforderlich. Diese Befehle setzen voraus, dass Ihr Container `unsloth`. Falls nötig, führen Sie `docker ps` aus, um seinen Namen oder seine ID zu finden.

{% hint style="info" %}
Wenn Docker auf einem anderen Rechner läuft (z. B. auf einer Cloud-GPU oder einem Server), `localhost` bedeutet Ihren eigenen Computer. Sie müssen die Ports weiterleiten, bevor Sie die Links öffnen. Führen Sie `ssh -L 8000:localhost:8000 -L 8888:localhost:8888 user@your-server`. Siehe den [Sicherheitshinweise](#security-notes) Abschnitt für Details.
{% endhint %}
{% endstep %}
{% endstepper %}

#### **Mit einem Modell chatten**

{% hint style="info" %}
Unsloth Studio und JupyterLab teilen sich dieselbe GPU. Ein in Unsloth geladenes Modell behält seinen GPU-Speicher, bis Sie es entladen. Wenn Ihnen der Speicher ausgeht, entladen Sie das Modell in Unsloth oder stoppen Sie den Notebook-Kernel.
{% endhint %}

{% stepper %}
{% step %}
**Wählen und laden Sie ein Modell herunter**

Öffnen **Modell auswählen** oben auf der Seite. Durchsuchen Sie **Empfohlen**, oder geben Sie einen Modellnamen ein und klicken Sie auf **Hub durchsuchen** um Hugging Face zu durchsuchen. Sie können Modelle auch im **Modell-Hub**.

Bei GGUF-Modellen wählen Sie eine Quantisierung, die in Ihren verfügbaren RAM und VRAM passt. Vermeiden Sie Varianten mit der Kennzeichnung **OOM**.

Warten Sie, bis das Modell vollständig heruntergeladen und geladen ist, bevor Sie Ihre erste Nachricht senden. Sie können heruntergeladene Modelle erneut auswählen unter **Auf dem Gerät**.

<figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FgyDczCQqKkgh7ap2PuNU%2Fimage.png?alt=media&amp;token=740ee435-e68f-4811-8bb6-aa093526f74f" alt="Unsloth Studio model selector with Hugging Face search and recommended GGUF models." width="375"><figcaption><p>Durchsuchen Sie empfohlene Modelle oder suchen Sie nach Namen.</p></figcaption></figure>

{% hint style="info" %}
Heruntergeladene Modelle werden gespeichert in `/workspace/.cache/huggingface`. Mit dem Quickstart-Volume-Mount wird dieser Cache mit Notebooks geteilt und bleibt auf Ihrem Computer, auch wenn Sie den Container entfernen.
{% endhint %}
{% endstep %}

{% step %}
**Nachricht senden**

Sobald das Modell bereit ist, geben Sie eine Nachricht ein und drücken Sie **Eingabetaste**. Versuchen Sie:

> Erklären Sie, wie sich Docker-Container von virtuellen Maschinen unterscheiden.

<figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FKfzGAT0DLWirgWvkfK1x%2Fimage.png?alt=media&amp;token=afff9dd2-06d4-4f7b-bba5-8a4835143090" alt=""><figcaption></figcaption></figure>

Siehe die [Unsloth-Studio-Chat](/docs/de/neu/studio/chat.md) Anleitung für Websuche und weitere Chat-Einstellungen.
{% endstep %}
{% endstepper %}

#### **Ein Modell trainieren**

Sie können Modelle über Text, [Vision](https://unsloth.ai/docs/basics/vision-fine-tuning) und [Audio](https://unsloth.ai/docs/basics/text-to-speech-tts-fine-tuning), mit Unterstützung für [Embeddings](https://unsloth.ai/docs/basics/embedding-finetuning) und auch Bilddiffusion. Alles aus demselben Docker-Image.

<figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2F66Vvgt0l5iqAkAksIRYF%2Fimage.png?alt=media&amp;token=8fcb1ad6-2b53-4128-87fa-a47bcd1deab4" alt="" width="563"><figcaption></figcaption></figure>

**Wählen Sie ein Modell und einen Datensatz**

Wählen Sie **Trainieren** und öffnen Sie **Konfigurieren**. Wählen Sie ein Modell und eine Trainingsmethode und wählen Sie dann einen Hugging-Face-Datensatz oder laden Sie Ihren eigenen hoch.

**Training starten**

Überprüfen Sie **Parameter** in **Einfach** oder **Erweitertes** Modus, dann klicken Sie auf **Training starten**. Verfolgen Sie Fortschritt, Loss und GPU-Auslastung in **Aktueller Lauf**.

<figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FD7qpbGJLY5YMv0E0QgrB%2Ftrainingrun_LLM-unsloth.gif?alt=media&amp;token=feb766a7-1a7b-4f47-b5f4-b38e3a0d1470" alt=""><figcaption></figcaption></figure>

**Probieren Sie Ihr trainiertes Modell aus**

Wenn das Training abgeschlossen ist, klicken Sie auf **Im Chat vergleichen**. Testen Sie das ursprüngliche und das feinabgestimmte Modell mit denselben Prompts, um zu sehen, wie sich ihre Antworten unterscheiden.

Siehe die [Studio-Trainingsanleitung](https://unsloth.ai/docs/new/studio/start) für weitere Details, oder verwenden Sie [Datenrezepte](https://unsloth.ai/docs/new/studio/data-recipe) um Ihren Datensatz vorzubereiten.

#### **Bilder generieren**

{% stepper %}
{% step %}
**Öffnen Sie Images und wählen Sie ein Modell**

Wählen Sie **Bilder** in der Seitenleiste. Die **Erstellen** Workflow ist standardmäßig geöffnet.

<figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2F6WVNnM49nQoTBfv57RAs%2Fimage%20(529).png?alt=media&amp;token=ff61651a-4560-4473-9232-d06024cb216e" alt="Unsloth Studio Images page with Create selected in the sidebar and prompt controls." width="375"><figcaption><p>Öffnen Sie Images, um aus einer Texteingabe ein Bild zu erstellen.</p></figcaption></figure>

Öffnen **Bildmodell auswählen** und wählen Sie aus **Empfohlen**, wie z. B. Z-Image-Turbo. Bei GGUF-Modellen wählen Sie eine Quantisierung, die zu Ihrem Gerät passt. **KNAPP** kann langsam laufen; **OOM** gekennzeichnet ist, wird wahrscheinlich nicht hineinpassen.

<figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2F1gPBEymJifbpIE9lGfvd%2Fimage%20(530).png?alt=media&amp;token=6f1b3e41-2c5a-4c5a-9c75-f624c6f4ede6" alt="Image model selector showing Z-Image-Turbo-GGUF and available quantizations." width="375"><figcaption><p>Wählen Sie ein Bildmodell und eine Quantisierung für Ihr Gerät.</p></figcaption></figure>
{% endstep %}

{% step %}
**Geben Sie einen Prompt ein und generieren Sie**

Beschreiben Sie das Bild, das Sie erstellen möchten. Zum Beispiel:

> Aufnahme von oben auf einen Koiteich in einem japanischen Garten, Dutzende orangefarbene, weiße und schwarze Kois, die eng formiert schwimmen, Wasser klar genug, um den Steinboden zu sehen, rote Ahornblätter treiben an der Oberfläche. Helles Mittagslicht, satte Farben, scharfe Spiegelungen. Realistisches Foto, 50 mm.

Lassen Sie die Bildeinstellungen auf ihren Standardwerten und klicken Sie auf **Erzeugen**.

<figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fy0qucNcG7XQlDVvv3XZE%2Fimage%20(493).png?alt=media&amp;token=47888a19-5384-4ace-b5d7-f90cf4fb9b0f" alt="Unsloth Studio Create images page with Z-Image-Turbo loaded, a koi pond prompt, a generated image, and Recipe and Download controls." width="563"><figcaption><p>Eine Beispielgenerierung mit Z-Image-Turbo.</p></figcaption></figure>

Öffnen Sie Ihr Bild in der Galerie und klicken Sie auf **Herunterladen** zum Speichern, oder **Rezept** um den Prompt und die Einstellungen erneut zu verwenden.

**Transformieren**, **Inpaint** und **Bearbeiten** hängen vom geladenen Modell ab. Siehe den [Leitfaden zur Bilddiffusion](https://unsloth.ai/docs/basics/diffusion-image) für unterstützte Workflows und Einstellungen.
{% endstep %}
{% endstepper %}

#### **Zugriff auf JupyterLab**

{% columns %}
{% column %}
Das Unsloth-Docker-Image enthält JupyterLab und sofort einsatzbereite Notebooks.

Öffnen [`http://localhost:8888`](http://localhost:8888) und melden Sie sich an. Verwenden Sie das `JUPYTER_PASSWORD` das Sie beim Starten des Containers gewählt haben. Wenn Sie keines festgelegt haben, verwenden Sie das im Containerprotokoll ausgegebene generierte Passwort.

{% hint style="info" %}
JupyterLab-Passwörter werden festgelegt, wenn der Container erstellt wird. Um es zu ändern, entfernen und erstellen Sie den Container mit einem neuen Passwort neu.
{% endhint %}
{% endcolumn %}

{% column %}

<figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FQapcJDBCYgxaEfG5zEEn%2Fimage.png?alt=media&amp;token=8eb72fbd-8ca1-43f6-9c6a-e45cb7a06da0" alt="" width="375"><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

Nach dem Anmelden sehen Sie **Unsloth Notebooks**, mit nach Modell und Aufgabe gruppierten Ordnern.

Diese Ordner enthalten Verknüpfungen zu den Notebook-Dateien in `/workspace/unsloth-notebooks`. Bei jedem Start des Containers werden die Notebooks von GitHub aktualisiert, ohne Ihre Änderungen zu überschreiben.

Doppelklicken Sie **01 Main Notebooks** um Beispiele zu durchsuchen, oder wählen Sie eine Kategorie wie Vision, Sprache oder Reinforcement Learning.

<div data-with-frame="true"><figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FXceIgyo451mqw1hchpXR%2Fimage.png?alt=media&amp;token=b32a2968-0e94-4eff-b6a5-ed9f9b617ca4" alt="" width="563"><figcaption></figcaption></figure></div>

#### **Feinabstimmung eines Modells in einem Notebook**

Entladen Sie vor dem Start des Trainings jedes in Unsloth Studio geladene Modell, damit das Notebook den benötigten GPU-Speicher hat.

Öffnen Sie ein Notebook in **01 Main Notebooks** und folgen Sie den Anweisungen. Drücken Sie **Shift+Enter** um jede Zelle der Reihe nach auszuführen. Beim ersten Ausführen wird das Modell in den Hugging-Face-Cache heruntergeladen.

Zum Beispiel, `Gemma3_(4B)-Vision.ipynb` führt Sie durch die Feinabstimmung von Gemma 3 4B, um Bilder von Gleichungen in LaTeX umzuwandeln.

<div data-with-frame="true"><figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FyLdWCorjvMlW0OPkE2v4%2Fimage.png?alt=media&amp;token=ca2e62b5-5857-4cbf-89f4-735030f1123b" alt="" width="563"><figcaption></figcaption></figure></div>

Nach dem Training testen Sie Ihr Modell mithilfe des **Inferenz** Abschnitts des Notebooks. Er testet das trainierte Modell an einem Gleichungsbild. Die Gleichung steht unten; hier wurde sie zur besseren Lesbarkeit in höherer Auflösung neu erstellt.

<div data-with-frame="true"><figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FGJdMUUr0ig4NQL5TMk2I%2Fimage.png?alt=media&amp;token=fa1eb118-dcbd-4ad3-a8f4-48e47659c143" alt="" width="563"><figcaption></figcaption></figure></div>

Das Modell erzeugt LaTeX aus dem ursprünglichen Datensatzbild. Es gibt das LaTeX-Ergebnis unter der Zelle aus.

#### **Speichern und exportieren Sie Ihr Modell**

Folgen Sie dem Abschnitt Speichern des Notebooks, um Ihre trainierten LoRA-Adapter zu speichern oder Ihr zusammengeführtes Modell zu exportieren.

Ein relativer Pfad wie `"gemma_3_lora"` speichert neben dem Notebook, in `/workspace/Unsloth Notebooks/...`. Dieser Ordner befindet sich im Container, daher wird er gelöscht, wenn Sie den Container entfernen. Um Ihre Ergebnisse auf Ihrem Computer zu behalten, speichern Sie unter `/workspace/host`.

* **LoRA-Adapter lokal speichern:** Diese Zelle wird standardmäßig ausgeführt. Ändern Sie den Pfad zu `/workspace/host`.

  ```python
  model.save_pretrained("/workspace/host/gemma_3_lora")
  processor.save_pretrained("/workspace/host/gemma_3_lora")
  ```
* **Zusammengeführtes 16-Bit-Modell exportieren:** Ändern Sie im Export-Block `if False:` zu `if True:` für die gewünschte Option. Wählen Sie nur eine.

  ```python
  if True: model.save_pretrained_merged("/workspace/host/unsloth_finetune", processor)
  ```

<div data-with-frame="true"><figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FERw6laeLKXj5mLtoWB8y%2Fimage.png?alt=media&amp;token=5d43449b-cc98-4448-93f5-79599d39148f" alt="" width="563"><figcaption></figcaption></figure></div>

* **Auf Hugging Face hochladen:** Sie benötigen ein Token mit Schreibzugriff zum Hochladen. Ersetzen Sie die `YOUR_USERNAME` und `YOUR_HF_TOKEN` Platzhalter durch Ihre eigenen Angaben.

Weitere Hinweise finden Sie in unserer [Anleitung zum Fine-Tuning](https://unsloth.ai/docs/get-started/fine-tuning-llms-guide), [RL-Anleitung](https://unsloth.ai/docs/get-started/reinforcement-learning-rl-guide), und [Notebook-Sammlung](https://github.com/unslothai/notebooks).

#### Container stoppen, neu starten und aktualisieren

Befehle verwenden den Container-Namen oder die ID, nicht den Image-Namen `unsloth/unsloth`.

Fahren Sie den Container herunter, aber behalten Sie ihn:

```bash
docker stop unsloth
```

Bringen Sie ihn im selben Zustand zurück:

```bash
docker start unsloth
```

Finden Sie Ihren Container erneut, laufend oder nicht:

```bash
docker ps -a
```

Container stoppen und löschen:

```bash
docker rm -f unsloth
```

Das Löschen des Containers löscht weder Ihre Modelle noch Ihre Host-Dateien (`/workspace/host`), noch Unsloth-Studio-Daten (Konten, Chats und Exporte). Ein neuer Container mit denselben `-v` Flags setzt dort fort, wo Sie aufgehört haben, und Ihr Unsloth-Passwort bleibt dasselbe. Alles andere, was im Container geschrieben wurde, geht verloren.

Um die Daten von Unsloth Studio dauerhaft zu löschen, entfernen Sie sein Volume:

```bash
docker volume rm unsloth-studio
```

Um auf die neueste Unsloth-Version zu aktualisieren, ziehen Sie das neue Image:

```bash
#NVIDIA-GPUs
docker pull unsloth/unsloth
#AMD-GPUs
docker pull unsloth/unsloth-rocm
```

Dann entfernen Sie den alten Container und führen Sie den Quickstart-Befehl erneut mit denselben Flags aus. Ihre Modelle, Dateien und Unsloth-Studio-Daten werden übernommen.

```bash
docker rm -f unsloth
```

#### **Per SSH verbinden**

SSH ist deaktiviert, sofern Sie nicht `SSH_KEY` oder `PUBLIC_KEY`. Sie verbinden sich als `root` Benutzer mit ausschließlich schlüsselbasierter Authentifizierung auf Port 22 im Container.

Erzeugen Sie einen SSH-Schlüssel:

```bash
ssh-keygen -t ed25519 -f ~/.ssh/container_key
```

Der SSH-Schlüssel wird angewendet, wenn der Container erstellt wird, daher müssen Sie den Container neu erstellen, um ihn hinzuzufügen. Verwenden Sie diesen vollständigen Befehl, um den SSH-Port auf 2222 auf Ihrem Host abzubilden, Ihre Passwörter festzulegen und Ihre Volumes einzubinden.

{% tabs %}
{% tab title="NVIDIA" %}

```bash
docker run -d --name unsloth --gpus all --ipc=host \
  --ulimit memlock=-1 --ulimit stack=67108864 \
  -p 8000:8000 -p 8888:8888 -p 2222:22 \
  -e JUPYTER_PASSWORD="choose-a-jupyter-password" \
  -e UNSLOTH_STUDIO_PASSWORD="choose-a-studio-password" \
  -e SSH_KEY="$(cat ~/.ssh/container_key.pub)" \
  -v "$PWD":/workspace/host \
  -v "$HOME/.cache/huggingface":/workspace/.cache/huggingface \
  -v unsloth-studio:/opt/unsloth-studio \
  unsloth/unsloth
```

{% endtab %}

{% tab title="AMD" %}

```bash
GPU_FLAGS="--device /dev/kfd"
[ -e /dev/dri ] && GPU_FLAGS="$GPU_FLAGS --device /dev/dri"
for g in video render; do
  gid=$(getent group "$g" | cut -d: -f3)
  [ -n "$gid" ] && GPU_FLAGS="$GPU_FLAGS --group-add $gid"
done
docker run -d --name unsloth $GPU_FLAGS --ipc=host \
  --ulimit memlock=-1 --ulimit stack=67108864 \
  -p 8000:8000 -p 8888:8888 -p 2222:22 \
  -e JUPYTER_PASSWORD="choose-a-jupyter-password" \
  -e UNSLOTH_STUDIO_PASSWORD="choose-a-studio-password" \
  -e SSH_KEY="$(cat ~/.ssh/container_key.pub)" \
  -v "$PWD":/workspace/host \
  -v "$HOME/.cache/huggingface":/workspace/.cache/huggingface \
  -v unsloth-studio:/opt/unsloth-studio \
  unsloth/unsloth-rocm
```

{% endtab %}
{% endtabs %}

`UNSLOTH_STUDIO_PASSWORD` gilt nur beim ersten Mal, wenn das `unsloth-studio` Volume verwendet wird. Siehe [Erweiterte Einstellungen](#advanced-settings) unten für alle Umgebungsvariablen, Volumes und Ports.

Verbinden Sie sich mit dem Container:

```bash
ssh -i ~/.ssh/container_key -p 2222 root@localhost
```

#### 📂 Container-Struktur

* `/workspace/host/` — Ihr eingehängtes Arbeitsverzeichnis
* `/workspace/.cache/huggingface` — Modell- und Datensatz-Downloads
* `/workspace/.cache/triton` — Kompilierte Triton-Kerne
* `/workspace/unsloth-notebooks/` — Beispiel-Notebooks zur Feinabstimmung, einschließlich Ihrer Änderungen
* `/workspace/Unsloth Notebooks` — Nach Thema gruppierte Beispiel-Notebooks zur Feinabstimmung, bei jedem Start neu erstellt
* `/opt/unsloth-studio` — Konten, Chats, Ausgaben, Exporte und Läufe von Unsloth Studio

### Fehlerbehebung

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

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

Das neueste Image manuell ziehen:

```bash
 #NVIDIA-GPUs
 docker pull unsloth/unsloth:latest
 #AMD-GPUs
 docker pull unsloth/unsloth-rocm:latest
```

* Starte den Container mit GPU-Zugriff:
  * `docker run`: `--gpus all`
  * Docker Compose: `capabilities: [gpu]`
  * AMD: `--device /dev/kfd --device /dev/dri` plus die `--group-add` IDs (die `$GPU_FLAGS` Block in der Schnellstartanleitung)
* Unter Linux (NVIDIA) stelle sicher, dass das NVIDIA Container Toolkit installiert ist, und starte Docker nach der Installation neu.
* Unter Windows (NVIDIA):
  * Ausführen `docker exec unsloth nvidia-smi`. Wenn deine GPU aufgelistet wird, kann der Container sie sehen.
  * Folge [der Docker-Anleitung](< https://docs.docker.com/desktop/features/gpu/>)
* Bei AMD: führe aus `docker exec unsloth rocm-smi`. Wenn deine GPU aufgelistet wird, kann der Container sie sehen. Ein Berechtigungsfehler bei `/dev/kfd` bedeutet, dass die `--group-add` IDs fehlten.

#### Port ist bereits belegt

Ändere den Port auf der Host-Seite, z. B. `-p 8001:8000`, dann öffne [http://localhost:8001](http://localhost:8001/).

#### Unsloth Studio reagierte nach einer Stunde nicht mehr

Unsloth Studio fährt automatisch herunter, wenn das automatisch generierte Passwort nicht geändert wird. Führe aus `docker restart unsloth` um es erneut zu starten und das Passwort zu ändern.

#### Dateien in deinem Projektordner gehören root

Der Container läuft als root, daher verwende `sudo chown`, oder `core` mit `--user`.

### ⚙️ Erweiterte Einstellungen

#### Umgebungsvariablen

Gib eine beliebige davon an `docker run` mit `-e NAME=value` oder `--env-file`. Diese gelten sowohl für `unsloth/unsloth` und `unsloth/unsloth-rocm`.

| Variable                                                           | Beschreibung                                                                                   | Standard                                                             |
| ------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- |
| `UNSLOTH_STUDIO_PASSWORD`                                          | Anfängliches Unsloth-Studio-Passwort für Benutzer `unsloth`                                    | Nicht gesetzt: wird einmal generiert und ausgegeben in `docker logs` |
| `JUPYTER_PASSWORD`                                                 | JupyterLab-Passwort                                                                            | Nicht gesetzt: wird einmal generiert und ausgegeben in `docker logs` |
| `JUPYTER_PORT`                                                     | JupyterLab-Port im Container                                                                   | `8888`                                                               |
| `UNSLOTH_STUDIO_PORT`                                              | Unsloth-Studio-Port im Container                                                               | `8000`                                                               |
| `UNSLOTH_STUDIO_BOOTSTRAP_TIMEOUT`                                 | Sekunden, bevor Unsloth Studio herunterfährt, wenn das generierte Passwort nicht geändert wird | `3600`                                                               |
| `SSH_KEY` oder `PUBLIC_KEY`                                        | SSH-öffentlicher Schlüssel für `root` Anmeldung                                                | Nicht gesetzt: SSH aus                                               |
| `UNSLOTH_ALLOW_CPU`                                                | Ermöglicht dem Container, ohne GPU zu starten                                                  | `1`, nicht gesetzt, wenn eine GPU sichtbar ist                       |
| `UNSLOTH_STUDIO_SECURE`                                            | Unsloth Studio nur über einen öffentlichen Cloudflare-HTTPS-Link bereitstellen                 | `0`                                                                  |
| `UNSLOTH_STUDIO_CLOUDFLARE`                                        | Unsloth Studio über einen öffentlichen Cloudflare-Link teilen                                  | `0`                                                                  |
| `UNSLOTH_JUPYTER_CLOUDFLARE`                                       | Teile JupyterLab über einen öffentlichen Cloudflare-Link                                       | `0`                                                                  |
| `Das Aktualisieren der Beispiel-Notebooks von GitHub überspringen` | Das Einrichten der Beispiel-Notebooks überspringen                                             | `0`                                                                  |
| `UNSLOTH_SKIP_NOTEBOOK_SYNC`                                       | Das Einrichten der Beispiel-Notebooks überspringen                                             | `0`                                                                  |
| `HF_TOKEN`                                                         | Hugging-Face-Zugriffstoken                                                                     | Nicht gesetzt                                                        |
| `WANDB_API_KEY`                                                    | Weights-&-Biases-API-Schlüssel                                                                 | Nicht gesetzt                                                        |

#### Volume

{% hint style="warning" %}
**Wichtig**: Verwenden Sie Volume-Mounts, um Ihre Arbeit zwischen Container-Ausführungen zu erhalten.
{% endhint %}

Alles, was nicht auf einem Volume liegt, geht verloren, wenn der Container entfernt wird. Binde diese ein mit `-v <host path or volume name>:<container path>`.

| Container-Pfad                  | Beschreibung                                                        | Empfohlene Einbindung                                                    |
| ------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| `/workspace/host`               | Deine Projektdateien                                                | Dein Projektordner, z. B. `"$PWD"`                                       |
| `/workspace/.cache/huggingface` | Heruntergeladene Modelle und Datensätze                             | Dein Hugging-Face-Cache auf dem Host, z. B. `"$HOME/.cache/huggingface"` |
| `/opt/unsloth-studio`           | Unsloth-Studio-Konten, Chats, trainierte Modelle, Exporte und Läufe | Benanntes Volume `unsloth-studio`                                        |
| `/workspace/unsloth-notebooks`  | Beispiel-Notebooks, einschließlich deiner Änderungen                | Optional                                                                 |
| `/workspace/.cache/triton`      | Kompilierte GPU-Kernel                                              | Optional, beschleunigt Neustarts                                         |

* `/workspace` ist das Arbeitsverzeichnis und der Ordner, den JupyterLab öffnet.
* Verwende ein benanntes Volume für `/opt/unsloth-studio`, nicht einen Host-Ordner. Unsloth Studio benötigt dort Symlinks, und ein Host-Ordner unter Windows oder macOS erlaubt diese möglicherweise nicht, wodurch der Container beim Start stoppt.
* Um Unsloth Studio oder JupyterLab mehr deiner Dateien bereitzustellen, binde weitere Ordner unter `/workspace`, z. B. `-v /data/datasets:/workspace/datasets`, und verweise darauf über diesen Container-Pfad.

#### Ports

| Port   | Dienst                               |
| ------ | ------------------------------------ |
| `8000` | Unsloth Studio                       |
| `8888` | JupyterLab                           |
| `22`   | SSH (nur wenn `SSH_KEY` gesetzt ist) |

Ordne einen Container-Port mit einem beliebigen freien Host-Port zu mit `-p <host>:<container>`. Zum Beispiel, um SSH auf dem Host-Port zu aktivieren `2222`:

{% tabs %}
{% tab title="NVIDIA" %}

```bash
docker run -d --name unsloth --gpus all \
  -p 8000:8000 -p 8888:8888 -p 2222:22 \
  -e SSH_KEY="$(cat ~/.ssh/id_ed25519.pub)" \
  -v "$PWD":/workspace/host \
  -v "$HOME/.cache/huggingface":/workspace/.cache/huggingface \
  -v unsloth-studio:/opt/unsloth-studio \
  unsloth/unsloth
```

{% endtab %}

{% tab title="AMD" %}

```bash
GPU_FLAGS="--device /dev/kfd"
[ -e /dev/dri ] && GPU_FLAGS="$GPU_FLAGS --device /dev/dri"
for g in video render; do
  gid=$(getent group "$g" | cut -d: -f3)
  [ -n "$gid" ] && GPU_FLAGS="$GPU_FLAGS --group-add $gid"
done
docker run -d --name unsloth $GPU_FLAGS \
  -p 8000:8000 -p 8888:8888 -p 2222:22 \
  -e SSH_KEY="$(cat ~/.ssh/id_ed25519.pub)" \
  -v "$PWD":/workspace/host \
  -v "$HOME/.cache/huggingface":/workspace/.cache/huggingface \
  -v unsloth-studio:/opt/unsloth-studio \
  unsloth/unsloth-rocm
```

{% endtab %}
{% endtabs %}

### **🔒 Sicherheitshinweise**

* Der Container läuft als root. Verwende `unsloth/unsloth:core` mit `--user <uid>:<gid>` wenn eingebundene Dateien deinem Host-Benutzer gehören sollen.
* SSH ist deaktiviert, sofern nicht `SSH_KEY` oder `PUBLIC_KEY` gesetzt ist. Es ist nur mit Schlüssel, als root, auf Port 22.
* Veröffentlichte Ports lauschen auf allen Schnittstellen. Auf einem Cloud-Host an `127.0.0.1` oder verwende `-e UNSLOTH_STUDIO_SECURE=1`.
* JupyterLab ist eine vollständige Shell. Jeder, der sich bei JupyterLab anmelden kann, kann jeden Befehl im Container ausführen. Unsloth Studio und JupyterLab stellen nur unverschlüsseltes HTTP bereit, also setze sie nicht direkt dem Internet aus.
* Die Werkzeuge von Unsloth Studio können Code ausführen. Die serverseitigen Werkzeuge von Studio sind standardmäßig aktiviert und können Befehle im Container ausführen. Binde nur Host-Ordner ein, bei denen du damit einverstanden bist, dem Container Zugriff zu gewähren.
* Umgebungsvariablen sind für Docker-Benutzer sichtbar. Werte, die mit `-e` oder `--env-file`übergeben werden, einschließlich Token und Passwörtern, erscheinen in `docker inspect`. Jeder mit Zugriff auf den Docker-Daemon kann sie lesen.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://unsloth.ai/docs/de/loslegen/install/docker.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
