> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-wbdocs-1882.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 à l’aide de Docker sur une machine locale, à la fois comme environnement de l’agent et comme cible de calcul.

Le guide suivant 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.

Utiliser Docker pour exécuter des jobs et comme environnement de l’agent Launch sur une même machine locale est particulièrement utile si votre infrastructure de calcul est installée 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 de puissantes stations de travail.

<Note>
  Cette configuration est courante pour les utilisateurs qui effectuent des expériences sur leur machine locale, ou qui disposent d’une machine distante à laquelle ils se connectent en SSH pour soumettre des jobs Launch.
</Note>

Lorsque vous utilisez Docker avec W\&B Launch, W\&B commence par créer une image, puis crée et exécute un conteneur à partir de cette image. L’image est créée à l’aide de la commande Docker `docker run <image-uri>`. La configuration de la file d’attente est interprétée comme des arguments supplémentaires transmis à la commande `docker run`.

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

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 :

1. Les options répétées sont définies dans la configuration de la file d’attente sous forme de liste.
2. Les options de type indicateur sont définies dans la configuration de la file d’attente sous forme de booléens 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
```

Les volumes peuvent être spécifiés 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 automatiquement depuis l’environnement de l’agent Launch les variables d’environnement auxquelles aucune valeur n’est attribuée. Cela signifie que, si l’agent Launch possède une variable d’environnement `MY_EXISTING_ENV_VAR`, cette variable d’environnement 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’utilisation de 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>

Créez une file d’attente qui utilise Docker comme ressource de calcul avec la W\&B CLI :

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** pour créer la 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 W\&B CLI et un fichier de configuration YAML :

<Tabs>
  <Tab title="W&B CLI">
    ```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>

L’agent Launch sur votre machine peut être configuré 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 Dockerhub, 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.

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).
