Esta página se muestra en inglés. Una traducción al español está en curso.
ConfigsMay 10, 2026·3 min de lectura

Docker Buildx — Extended Build Capabilities with BuildKit

A Docker CLI plugin that extends docker build with multi-platform builds, distributed caching, and advanced BuildKit features.

Introduction

Docker Buildx is a CLI plugin that extends the standard docker build command with full access to BuildKit features. It enables multi-platform image builds, distributed build caching, multiple builder instances, and advanced Dockerfile capabilities that go beyond what the legacy Docker build engine supports.

What Docker Buildx Does

  • Builds multi-platform container images (amd64, arm64, armv7, s390x, etc.) in a single command
  • Manages multiple builder instances with different configurations and drivers
  • Supports remote cache backends (registry, S3, GitHub Actions cache, Azure Blob)
  • Enables concurrent multi-stage builds with BuildKit's dependency-aware parallelism
  • Outputs images to registries, local tarballs, or OCI image layouts

Architecture Overview

Buildx acts as a frontend to BuildKit, the next-generation build engine. When you run docker buildx build, the CLI sends the build context and Dockerfile to a BuildKit daemon. BuildKit parses the Dockerfile into an LLB (low-level build) graph, executes build steps in parallel where possible, and manages layer caching. For multi-platform builds, Buildx uses QEMU emulation or native builder nodes to produce images for each target architecture, then assembles a manifest list.

Self-Hosting & Configuration

  • Included by default in Docker Desktop; on Linux, install as a CLI plugin in ~/.docker/cli-plugins/
  • Create builder instances with docker buildx create using the docker, docker-container, or kubernetes driver
  • Configure remote cache with --cache-to and --cache-from flags (registry, local, S3, GHA)
  • Set default builder with docker buildx use <name> or the BUILDX_BUILDER env var
  • Use docker buildx bake with HCL/JSON files for complex multi-target build definitions

Key Features

  • Multi-platform builds: produce images for multiple CPU architectures from a single machine
  • Build drivers: docker (default), docker-container (isolated BuildKit), kubernetes (build pods), or remote
  • Bake: declarative build definitions in HCL or JSON for monorepo and multi-image projects
  • Distributed caching: share layer caches across CI runners via registry or object storage
  • Attestations: generate SBOM and SLSA provenance metadata attached to built images

Comparison with Similar Tools

  • docker build (legacy) — single-platform builds with limited caching; Buildx adds multi-platform and advanced cache
  • BuildKit (standalone) — the underlying engine; Buildx provides a user-friendly Docker CLI integration
  • Kaniko — builds images in Kubernetes without Docker daemon; Buildx requires a Docker or BuildKit daemon
  • Podman build — daemonless builds; Buildx offers more advanced caching and multi-platform support via BuildKit

FAQ

Q: How do multi-platform builds work without target hardware? A: Buildx uses QEMU user-mode emulation registered via binfmt_misc. For faster builds, you can connect native builder nodes for each architecture.

Q: Can I use Buildx in CI/CD? A: Yes. Buildx is widely used in GitHub Actions, GitLab CI, and other CI systems. The docker/build-push-action GitHub Action uses Buildx internally.

Q: What is the difference between Buildx and BuildKit? A: BuildKit is the build engine. Buildx is the Docker CLI plugin that makes BuildKit features accessible through familiar docker build commands.

Q: Does Buildx replace docker build? A: On modern Docker versions, docker build already uses Buildx as the default builder. The docker buildx subcommand exposes additional features like builder management and bake.

Sources

Discusión

Inicia sesión para unirte a la discusión.
Aún no hay comentarios. Sé el primero en compartir tus ideas.

Activos relacionados