⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

Builders

Un builder est un démon BuildKit que vous pouvez utiliser pour exécuter vos builds. BuildKit est le moteur de construction qui résout les étapes de construction dans un Dockerfile pour produire une image de conteneur ou d'autres artefacts.

Vous pouvez créer et gérer des builders, les inspecter et même vous connecter à des builders exécutés à distance. Vous interagissez avec les builders à l'aide de la CLI Docker.

Builder par défaut

Docker Engine crée automatiquement un builder qui devient le backend par défaut pour vos builds. Ce builder utilise la bibliothèque BuildKit fournie avec le démon. Ce builder ne nécessite aucune configuration.

Le builder par défaut est directement lié au démon Docker et à son contexte. Si vous modifiez le contexte Docker, votre builder default fait référence au nouveau contexte Docker.

Pilotes de build

Buildx implémente un concept de pilotes de build pour faire référence à différentes configurations de builder. Le builder par défaut créé par le démon utilise le pilote docker.

Buildx prend en charge les pilotes de build suivants :

  • docker: utilise la bibliothèque BuildKit fournie avec le démon Docker.
  • docker-container: crée un conteneur BuildKit dédié à l'aide de Docker.
  • kubernetes: crée des pods BuildKit dans un cluster Kubernetes.
  • remote: se connecte directement à un démon BuildKit géré manuellement.

Builder sélectionné

Le builder sélectionné fait référence au builder qui est utilisé par défaut lorsque vous exécutez des commandes de build.

Lorsque vous exécutez un build, ou interagissez avec des builders d'une manière ou d'une autre à l'aide de la CLI, vous pouvez utiliser l'indicateur facultatif --builder, ou la variable d'environnement BUILDX_BUILDER variable d'environnement, pour spécifier un builder par son nom. Si vous ne spécifiez pas de builder, le builder sélectionné est utilisé.

Utilisez la commande docker buildx ls pour voir les instances de builder disponibles. L'astérisque (*) à côté d'un nom de builder indique le builder sélectionné.

$ docker buildx ls
NAME/NODE       DRIVER/ENDPOINT      STATUS   BUILDKIT PLATFORMS
default *       docker
  default       default              running  v0.11.6  linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/386
my_builder      docker-container
  my_builder0   default              running  v0.11.6  linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/386

Sélectionner un builder différent

Pour basculer entre les builders, utilisez la commande docker buildx use <name>.

Après avoir exécuté cette commande, le builder que vous spécifiez est automatiquement sélectionné lorsque vous appelez des builds.

Différence entre docker build et docker buildx build

Même si docker build est un alias pour docker buildx build, il existe des différences subtiles entre les deux commandes. Avec Buildx, le client de build et le démon (BuildKit) sont découplés. Cela signifie que vous pouvez utiliser plusieurs builders à partir d'un seul client, même distants.

La commande docker build utilise toujours par défaut le builder par défaut qui est fourni avec Docker Engine, pour assurer la rétrocompatibilité avec les anciennes versions de la CLI Docker. La commande docker buildx build, d'autre part, vérifie si vous avez défini un builder différent comme builder par défaut avant d'envoyer votre build à BuildKit.

Pour utiliser la commande docker build avec un builder non par défaut, vous devez soit :

  • Spécifier explicitement le builder, en utilisant l'indicateur --builder ou la variable d'environnement BUILDX_BUILDER :

    $ BUILDX_BUILDER=my_builder docker build .
    $ docker build --builder my_builder .
    
  • Configurer Buildx comme client par défaut en exécutant la commande suivante :

    $ docker buildx install
    

    Cela met à jour votre fichier de configuration de la CLI Docker pour vous assurer que toutes vos commandes liées au build sont acheminées via Buildx.

    Tip

    Pour annuler cette modification, exécutez docker buildx uninstall.

En général, nous vous recommandons d'utiliser la commande docker buildx build lorsque vous souhaitez utiliser des builders personnalisés. Cela garantit que votre configuration de builder sélectionné est interprétée correctement.

Informations supplémentaires

  • Pour plus d'informations sur la façon d'interagir avec et de gérer les builders, consultez Gérer les builders
  • Pour en savoir plus sur les différents types de builders, consultez Pilotes de build