# Installer Unsloth via Docker

Découvrez comment utiliser nos conteneurs Docker avec toutes les dépendances préinstallées pour une installation immédiate. Aucune configuration requise, il suffit de lancer et de commencer l’entraînement !

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

{% hint style="success" %}
Unsloth Studio partage désormais le même cache que les notebooks et les scripts afin d’éviter les re-téléchargements inutiles.
{% endhint %}

### ⚡ Démarrage rapide

{% stepper %}
{% step %}
**Installez Docker et NVIDIA Container Toolkit.**

Installez Docker via [Linux](https://docs.docker.com/engine/install/) ou [Desktop](https://docs.docker.com/desktop/) (autre).\
Puis installez [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://550366147-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 %}
**Lancez le conteneur.**

[**`unsloth/unsloth`**](https://hub.docker.com/r/unsloth/unsloth) est la seule image Docker d’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://550366147-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 %}
**Accéder à Jupyter Lab**

Rendez-vous sur [http://localhost:8888](http://localhost:8888/) et ouvrez Unsloth.

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

Accédez aux onglets `unsloth-notebooks` pour voir les notebooks Unsloth.

<div><figure><img src="https://550366147-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://550366147-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 %}
**Commencez l’entraînement avec Unsloth**

Si vous débutez, suivez notre guide pas à pas [Guide de fine-tuning](https://unsloth.ai/docs/fr/commencer/fine-tuning-llms-guide), [Guide RL](https://unsloth.ai/docs/fr/commencer/reinforcement-learning-rl-guide) ou enregistrez/copie simplement l’un de nos [notebooks](https://unsloth.ai/docs/fr/commencer/unsloth-notebooks).

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

#### 📂 Structure du conteneur

* `/workspace/work/` — Votre répertoire de travail monté
* `/workspace/unsloth-notebooks/` — Exemples de notebooks de fine-tuning
* `/home/unsloth/` — Répertoire personnel de l’utilisateur

### 📖 Exemple d’utilisation

#### Exemple complet

```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
```

#### Configuration de la clé SSH

Si vous n’avez pas de paire de clés SSH :

```bash
# Générer une nouvelle paire de clés
ssh-keygen -t rsa -b 4096 -f ~/.ssh/container_key

# Utiliser la clé publique dans docker run
-e "SSH_KEY=$(cat ~/.ssh/container_key.pub)"

# Se connecter via SSH
ssh -i ~/.ssh/container_key -p 2222 unsloth@localhost
```

### 🦥Pourquoi les conteneurs Unsloth ?

* **Fiable**: Environnement sélectionné avec des versions de paquets stables et maintenues. Seulement 7 Go compressés (contre 10–11 Go ailleurs)
* **Prêt à l’emploi**: Notebooks préinstallés dans `/workspace/unsloth-notebooks/`
* **Sécurisé**: S’exécute en toute sécurité en tant qu’utilisateur non-root
* **Universel**: Compatible avec tous les modèles basés sur des transformeurs (TTS, BERT, etc.)

### **Unsloth ne détecte pas ou n’utilise pas mon GPU**

Si le modèle n’utilise pas votre GPU spécifiquement pour Docker, essayez :

En tirant manuellement la dernière image :

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

* Démarrez le conteneur avec l’accès GPU :
  * `docker run`: `--gpus all`
  * Docker Compose : `capabilities: [gpu]`
* Sous Linux, assurez-vous que NVIDIA Container Toolkit est installé.
* Sous Windows :
  * Vérifiez que `nvcc --version` correspond à la version CUDA affichée dans `nvidia-smi`
  * Suivez : <https://docs.docker.com/desktop/features/gpu/>

### ⚙️ Paramètres avancés

```bash
# Générer une paire de clés SSH
ssh-keygen -t rsa -b 4096 -f ~/.ssh/container_key

# Se connecter au conteneur
ssh -i ~/.ssh/container_key -p 2222 unsloth@localhost
```

| Variable           | Description                                    | Valeur par défaut |
| ------------------ | ---------------------------------------------- | ----------------- |
| `JUPYTER_PASSWORD` | Mot de passe de Jupyter Lab                    | `unsloth`         |
| `JUPYTER_PORT`     | Port de Jupyter Lab à l’intérieur du conteneur | `8888`            |
| `SSH_KEY`          | Clé publique SSH pour l’authentification       | `Aucune`          |
| `USER_PASSWORD`    | Mot de passe pour `unsloth` utilisateur (sudo) | `unsloth`         |

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

* Jupyter Lab : `-p 8000:8888`
* Accès SSH : `-p 2222:22`

{% hint style="warning" %}
**Important**: Utilisez des montages de volumes pour conserver votre travail entre les exécutions du conteneur.
{% 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
```

### **🔒 Notes de sécurité**

* Le conteneur s’exécute par défaut en tant que non-root `unsloth` utilisateur
* Utilisez `USER_PASSWORD` pour les opérations sudo à l’intérieur du conteneur
* L’accès SSH nécessite une authentification par clé publique


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://unsloth.ai/docs/fr/commencer/install/docker.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
