Cómo usar el comando docker buildx use para cambiar entre instancias de builder

DockerDockerBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás a gestionar y cambiar entre diferentes instancias de Docker builder utilizando el comando docker buildx use. Comenzaremos creando múltiples instancias de builder para tener opciones al construir imágenes de Docker.

Después de crear estas instancias, aprenderás a listar todos los builders disponibles para ver sus detalles y estado. El núcleo de este laboratorio se centrará en usar el comando docker buildx use para cambiar a un builder específico para tus operaciones de construcción. Finalmente, explorarás cómo establecer un builder como predeterminado para tu contexto actual y cómo configurar un builder para que persista los cambios de contexto.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/DockerfileGroup(["Dockerfile"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/DockerfileGroup -.-> docker/build("Build Image from Dockerfile") subgraph Lab Skills docker/ls -.-> lab-555064{{"Cómo usar el comando docker buildx use para cambiar entre instancias de builder"}} docker/create -.-> lab-555064{{"Cómo usar el comando docker buildx use para cambiar entre instancias de builder"}} docker/build -.-> lab-555064{{"Cómo usar el comando docker buildx use para cambiar entre instancias de builder"}} end

Crear múltiples instancias de builder

En este paso, aprenderemos cómo crear múltiples instancias de builder usando Docker. Las instancias de builder se utilizan para construir imágenes de Docker. Por defecto, Docker utiliza una única instancia de builder. Sin embargo, puedes crear múltiples instancias para mejorar el rendimiento de construcción o para usar diferentes configuraciones de build.

Primero, verifiquemos las instancias de builder actuales.

docker buildx ls

Deberías ver una instancia de builder predeterminada. Ahora, creemos una nueva instancia llamada mybuilder1.

docker buildx create --name mybuilder1

Este comando crea una nueva instancia de builder. Puedes verificar que la nueva instancia se ha creado listando nuevamente las instancias de builder.

docker buildx ls

Ahora deberías ver tanto el builder predeterminado como mybuilder1.

Creemos otra instancia de builder llamada mybuilder2.

docker buildx create --name mybuilder2

Nuevamente, verifica la creación de la nueva instancia.

docker buildx ls

Ahora deberías ver el builder predeterminado, mybuilder1 y mybuilder2.

Listar instancias de builder disponibles

En el paso anterior, creamos múltiples instancias de builder. En este paso, nos enfocaremos en listar estas instancias disponibles para ver su estado y detalles.

El comando para listar instancias de builder es docker buildx ls. Este comando proporciona información sobre todas las instancias de builder disponibles en tu sistema.

Ejecutemos nuevamente el comando para ver las instancias que creamos anteriormente.

docker buildx ls

La salida mostrará una tabla con columnas como NAME, DRIVER, ENDPOINT, STATUS y BUILDER.

  • NAME: Nombre de la instancia de builder
  • DRIVER: Driver utilizado por la instancia (ej. docker-container)
  • ENDPOINT: Endpoint al que está conectado el builder
  • STATUS: Estado actual de la instancia (ej. running, stopped)
  • BUILDER: Indica si es el builder actualmente en uso

Deberías ver listados el builder predeterminado, mybuilder1 y mybuilder2. La columna STATUS para los builders creados mostrará running si se iniciaron automáticamente, o stopped si no.

Este comando es útil para verificar qué builders están disponibles y su estado actual antes de cambiarlos o usarlos para construir imágenes.

Cambiar a una instancia de builder específica

En este paso, aprenderemos cómo cambiar a una instancia de builder específica. Cuando tienes múltiples instancias de builder, puedes elegir cuál utilizar para construir tus imágenes de Docker.

Para cambiar a una instancia de builder específica, usas el comando docker buildx use seguido del nombre de la instancia.

Cambiemos a la instancia mybuilder1 que creamos en los pasos anteriores.

docker buildx use mybuilder1

Después de ejecutar este comando, la instancia mybuilder1 será el builder activo para tu contexto actual de Docker.

Puedes verificar qué builder está activo actualmente listando nuevamente las instancias. El builder activo estará marcado con un asterisco (*) en la columna BUILDER.

docker buildx ls

Deberías ver un asterisco junto a mybuilder1 en la salida, indicando que es el builder activo actual.

Ahora, cambiemos a la instancia mybuilder2.

docker buildx use mybuilder2

Verifica que mybuilder2 sea ahora el builder activo.

docker buildx ls

Deberías ver el asterisco junto a mybuilder2.

Cambiar entre instancias de builder te permite utilizar fácilmente diferentes entornos o configuraciones de construcción según sea necesario.

Establecer un builder como predeterminado para el contexto actual

En el paso anterior, aprendimos cómo cambiar a una instancia de builder específica para la sesión actual. En este paso, aprenderemos cómo establecer una instancia de builder como predeterminada para el contexto actual de Docker. Esto significa que cada vez que uses comandos de Docker dentro de este contexto, se utilizará automáticamente el builder especificado.

Para establecer un builder como predeterminado para el contexto actual, usa el comando docker buildx use con el flag --default, seguido del nombre de la instancia de builder.

Establezcamos mybuilder1 como builder predeterminado para el contexto actual.

docker buildx use --default mybuilder1

Después de ejecutar este comando, mybuilder1 será el builder predeterminado para este contexto.

Puedes verificarlo listando las instancias de builder. El builder predeterminado estará marcado con un asterisco (*) y también indicado como default en la salida.

docker buildx ls

Deberías ver mybuilder1 marcado tanto como builder activo (con *) como builder predeterminado.

Ahora, establezcamos mybuilder2 como builder predeterminado.

docker buildx use --default mybuilder2

Verifica que mybuilder2 sea ahora el builder predeterminado.

docker buildx ls

Deberías ver mybuilder2 marcado como activo y predeterminado.

Establecer un builder predeterminado es útil cuando deseas usar consistentemente un builder específico para tus proyectos dentro de un contexto particular de Docker.

Configurar un builder para que persistan los cambios de contexto

En los pasos anteriores, aprendimos cómo cambiar a un builder y establecer un builder predeterminado para el contexto actual. Sin embargo, estos cambios podrían no persistir entre diferentes sesiones de terminal o reinicios del sistema, dependiendo de tu configuración de Docker. En este paso, exploraremos cómo asegurar que tu builder seleccionado permanezca como predeterminado incluso después de cerrar y reabrir tu terminal o reiniciar el daemon de Docker.

El comando docker buildx use --default establece el builder predeterminado para el contexto actual de Docker. Esta configuración normalmente se almacena en el archivo de configuración de Docker. Para asegurar que este cambio persista, generalmente no necesitas un comando adicional más allá de establecer el predeterminado. El flag --default está diseñado para hacer que el cambio sea persistente para ese contexto específico.

Reconfirmemos que mybuilder2 está configurado como builder predeterminado.

docker buildx ls

Deberías seguir viendo mybuilder2 marcado como builder predeterminado.

La persistencia de esta configuración depende de la gestión de configuración de Docker. Cuando usas docker buildx use --default, Docker actualiza su configuración para reflejar esta elección en el contexto activo. Esta configuración se carga cuando Docker inicia, asegurando que tu builder preferido se use por defecto.

Aunque no existe un comando separado específicamente para "persistir" el cambio más allá de usar --default, es importante entender que el flag --default maneja esta persistencia dentro del contexto de Docker.

Para probar verdaderamente la persistencia, normalmente reiniciarías el daemon de Docker o abrirías una nueva sesión de terminal y verificarías el builder predeterminado nuevamente usando docker buildx ls. En este entorno de laboratorio, el flag --default es suficiente para demostrar el comportamiento deseado de establecer un predeterminado persistente para el contexto actual.

Resumen

En este laboratorio, aprendimos cómo gestionar instancias de builders de Docker utilizando el comando docker buildx. Comenzamos creando múltiples instancias de builders, demostrando cómo añadir nuevos builders además del predeterminado. Luego practicamos listar estas instancias de builders disponibles usando docker buildx ls para ver sus nombres, controladores (drivers), endpoints y estado. Este paso es crucial para comprender los entornos de construcción disponibles.