> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-docs-sandboxes-integrations-placement.mintlify.site/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, à la fois comme environnement d’agent et comme cible de calcul.

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

Utiliser Docker pour exécuter des jobs et comme environnement de l’agent Launch sur une même machine locale est utile si vos ressources de calcul se trouvent sur une machine qui ne dispose pas d’un 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 postes de travail.

<Note>
  Cette configuration est courante pour 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 à l’aide de 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`.

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

Une configuration de file d’attente pour une ressource cible Docker définit la manière dont Launch traduit 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/models/ref/cli/wandb-docker-run).

L’agent reçoit les options définies dans la configuration de la file d’attente. Il fusionne ensuite les options reçues avec les surcharges de la configuration du job Launch pour produire une commande `docker run` finale, exécutée sur la ressource cible (dans ce cas, une machine locale).

Deux transformations de syntaxe ont lieu :

* 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 d’un booléen avec la valeur `true`.

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

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

Donne la commande `docker run` suivante :

```bash theme={null}
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 soit sous forme de liste de chaînes, soit sous forme 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 possède une variable d’environnement `MY_EXISTING_ENV_VAR`, cette variable sera disponible dans le conteneur. Cela est utile si vous souhaitez utiliser d’autres clés de configuration sans les publier dans la configuration de la file d’attente.

L’indicateur `--gpus` de la commande `docker run` vous permet de spécifier les GPU disponibles pour un conteneur Docker. Pour plus d’informations sur l’indicateur `--gpus`, voir 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 créez des images à partir d’un job basé sur du code ou provenant d’un artifact, vous pouvez remplacer l’image de base utilisée par l’[agent](#configure-a-launch-agent-on-a-local-machine) pour 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={null}
    {
      "builder": {
        "accelerator": {
          "base_image": "tensorflow/tensorflow:latest-gpu"
        }
      }
    }
    ```
</Note>

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

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

1. Accédez à la [page Launch](https://wandb.ai/launch).
2. Cliquez sur le bouton **Créer une file d’attente**.
3. Sélectionnez l’**entité** dans laquelle vous souhaitez créer la file d’attente.
4. Saisissez un nom pour votre file d’attente dans le champ **Nom**.
5. Sélectionnez **Docker** comme **Ressource**.
6. Définissez la configuration de votre file d’attente Docker dans le champ **Configuration**.
7. Cliquez sur le bouton **Créer une file d’attente**.

Vous disposez maintenant d’une file d’attente Launch basée sur Docker, prête à recevoir des jobs. Ensuite, configurez un agent Launch sur votre machine locale pour récupérer les jobs de cette file d’attente.

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

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 spécifier un autre répertoire lorsque vous activez 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 maximal de jobs, l'entité W\&B et les files d'attente Launch. Voir la commande [`wandb launch-agent`](/fr/models/ref/cli/wandb-launch-agent) pour en savoir plus.
</Note>

<div id="core-agent-config-options">
  ### Principales options de configuration de l'agent
</div>

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

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

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

<div id="docker-image-builders">
  ### Outils de création d’images Docker
</div>

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

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

Si vous ne voulez pas que l’agent construise des images Docker et préférez utiliser des images déjà construites depuis un registre, définissez la clé `builder` sur `noop` dans la configuration de l’agent Launch :

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

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

Launch utilise des registres de conteneurs externes comme 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 dans lequel vous l’avez créé, configurez votre agent pour qu’il puisse récupérer des images depuis un registre de conteneurs, afin que l’agent puisse récupérer des images qui n’ont pas été créées localement.

Pour en savoir plus sur la façon de connecter l’agent Launch à un registre cloud, consultez la page [Configuration avancée de l’agent](./setup-agent-advanced#agent-configuration).
