> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tutoriel : Configurer W&B Launch avec Docker

> Configurez W&B Launch pour exécuter des jobs de ML avec Docker sur une machine locale, qui sert à la fois d’environnement d’agent et de cible de calcul.

Ce tutoriel explique comment configurer W\&B Launch pour utiliser Docker sur une machine locale, à la fois pour l’environnement de l’agent Launch et pour la ressource cible de la file d’attente. À l’issue de ce tutoriel, vous disposerez d’une file d’attente Launch fonctionnelle basée sur Docker et d’un agent Launch local prêt à exécuter des jobs de ML.

Utiliser Docker sur une même machine locale, à la fois pour exécuter des jobs et comme environnement de l’agent Launch, est utile si vos ressources de calcul sont installées sur une machine dépourvue de système de gestion de cluster (comme Kubernetes). Vous pouvez également utiliser des files d’attente Docker pour exécuter des charges de travail sur des stations de travail.

<Note>
  Cette configuration est courante chez les utilisateurs qui exécutent des expériences sur leur machine locale ou qui se connectent en SSH à une machine distante pour soumettre des jobs Launch.
</Note>

Lorsque vous utilisez Docker avec Launch, W\&B construit d’abord une image, puis crée et exécute un conteneur à partir de cette image. W\&B construit l’image avec la commande Docker `docker run [IMAGE-URI]`. W\&B interprète la configuration de la file d’attente comme des arguments supplémentaires transmis à la commande `docker run`.

<h2 id="configure-a-docker-queue">
  Configurer une file d’attente Docker
</h2>

La configuration de la file d’attente pour une ressource cible Docker définit la manière dont Launch convertit les options de la file d’attente en une commande `docker run`.

La configuration de la file d’attente Launch (pour une ressource cible Docker) accepte les mêmes options que celles définies dans la commande CLI [`docker run`](/fr/products/wandb/ref/cli/wandb-docker-run).

L’agent reçoit les options définies dans la configuration de la file d’attente. Il fusionne ensuite ces options avec les éventuelles redéfinitions issues de la configuration du job Launch afin de produire une commande `docker run` finale, qui s’exécute sur la ressource cible (ici, une machine locale).

Deux transformations de syntaxe s’appliquent :

* Définissez les options répétées dans la configuration de la file d’attente sous forme de liste.
* Définissez les options de type indicateur dans la configuration de la file d’attente sous forme de booléen avec la valeur `true`.

Par exemple, la configuration de file d’attente suivante :

```json theme={"system"}
{
  "env": ["MY_ENV_VAR=value", "MY_EXISTING_ENV_VAR"],
  "volume": "/mnt/datasets:/mnt/datasets",
  "rm": true,
  "gpus": "all"
}
```

On obtient ainsi la commande `docker run` suivante :

```bash theme={"system"}
docker run \
  --env MY_ENV_VAR=value \
  --env MY_EXISTING_ENV_VAR \
  --volume "/mnt/datasets:/mnt/datasets" \
  --rm [IMAGE-URI] \
  --gpus all
```

Spécifiez les volumes sous forme de liste de chaînes ou d’une chaîne unique. Utilisez une liste si vous spécifiez plusieurs volumes.

Docker transmet depuis l’environnement de l’agent Launch les variables d’environnement auxquelles aucune valeur n’est attribuée. Si l’agent Launch dispose d’une variable d’environnement `MY_EXISTING_ENV_VAR`, cette variable est disponible dans le conteneur. C’est utile si vous souhaitez utiliser d’autres clés de configuration sans les publier dans la configuration de la file d’attente.

L’option `--gpus` de la commande `docker run` vous permet de spécifier les GPU mis à la disposition d’un conteneur Docker. Pour plus d’informations sur l’option `--gpus`, consultez la [documentation Docker](https://docs.docker.com/config/containers/resource_constraints/#gpu).

<Note>
  * Installez le [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker) pour utiliser des GPU dans un conteneur Docker.
  * Si vous construisez des images à partir d’un job dont la source est du code ou un artifact, vous pouvez redéfinir l’image de base utilisée par l’[agent](#configure-a-launch-agent-on-a-local-machine) afin d’y inclure le NVIDIA Container Toolkit.
    Par exemple, dans votre file d’attente Launch, vous pouvez remplacer l’image de base par `tensorflow/tensorflow:latest-gpu` :

    ```json theme={"system"}
    {
      "builder": {
        "accelerator": {
          "base_image": "tensorflow/tensorflow:latest-gpu"
        }
      }
    }
    ```
</Note>

<h2 id="create-a-queue">
  Créer une file d’attente
</h2>

Pour créer une file d’attente qui utilise Docker comme ressource de calcul, suivez ces étapes :

1. Accédez à la [page Launch](https://forge.coreweave.com/wandb/launch).
2. Cliquez sur le bouton **Create Queue**.
3. Sélectionnez l’**Entity** dans lequel vous souhaitez créer la file d’attente.
4. Saisissez un nom pour votre file d’attente dans le champ **Name**.
5. Sélectionnez **Docker** comme **Resource**.
6. Définissez la configuration de votre file d’attente Docker dans le champ **Configuration**.
7. Cliquez sur le bouton **Create Queue**.

Vous disposez maintenant d’une file d’attente Launch basée sur Docker, prête à recevoir des jobs. Configurez ensuite un agent Launch sur votre machine locale pour qu’il récupère les jobs de cette file d’attente.

<h2 id="configure-a-launch-agent-on-a-local-machine">
  Configurer un agent Launch sur une machine locale
</h2>

Configurez l’agent Launch à l’aide d’un fichier de configuration YAML nommé `launch-config.yaml`. Par défaut, W\&B recherche le fichier de configuration dans `~/.config/wandb/launch-config.yaml`. Vous pouvez également indiquer un autre répertoire au démarrage de l’agent Launch.

<Note>
  Vous pouvez utiliser la CLI W\&B pour spécifier les principales options configurables de l’agent Launch (au lieu du fichier de configuration YAML) : le nombre maximum de jobs, l’entity W\&B et les files d’attente Launch. Pour plus d’informations, consultez la commande [`wandb launch-agent`](/fr/products/wandb/ref/cli/wandb-launch-agent).
</Note>

<h3 id="core-agent-config-options">
  Options de configuration principales de l’agent
</h3>

Les onglets suivants montrent comment définir les options de configuration principales de l’agent avec la CLI W\&B et avec un fichier de configuration YAML :

<Tabs>
  <Tab title="CLI W&B">
    ```bash theme={"system"}
    wandb launch-agent -q [QUEUE-NAME] --max-jobs [N]
    ```
  </Tab>

  <Tab title="Fichier de configuration">
    ```yaml title="launch-config.yaml" theme={"system"}
    max_jobs: [N-CONCURRENT-JOBS]
    queues:
    	- [QUEUE-NAME]
    ```
  </Tab>
</Tabs>

<h3 id="docker-image-builders">
  Générateurs d’images Docker
</h3>

Vous pouvez configurer l’agent Launch sur votre machine pour qu’il construise des images Docker. Par défaut, ces images sont stockées dans le dépôt d’images local de votre machine. Pour que votre agent Launch puisse construire des images Docker, définissez la clé `builder` sur `docker` dans la configuration de l’agent Launch :

```yaml title="launch-config.yaml" theme={"system"}
builder:
	type: docker
```

Si vous ne souhaitez pas que l’agent construise des images Docker, mais qu’il utilise plutôt des images préconstruites provenant d’un registre, définissez la clé `builder` sur `noop` dans la configuration de l’agent Launch :

```yaml title="launch-config.yaml" theme={"system"}
builder:
  type: noop
```

<h3 id="container-registries">
  Registres de conteneurs
</h3>

Launch utilise des registres de conteneurs externes tels que Docker Hub, Google Container Registry, Azure Container Registry et Amazon ECR. Si vous souhaitez exécuter un job dans un environnement différent de celui où vous l’avez construit, configurez votre agent pour qu’il extraie les images d’un registre de conteneurs : l’agent pourra ainsi récupérer des images qui n’ont pas été construites localement.

Pour en savoir plus sur la connexion de l’agent Launch à un registre cloud, consultez la page [Configuration avancée de l’agent](/fr/products/wandb/platform/launch/setup-agent-advanced#agent-configuration).
