# 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. ## Install Save in your project root: # Docker Buildx — Extended Build Capabilities with BuildKit ## Quick Use ```bash # Create a new builder instance docker buildx create --name mybuilder --use # Build for multiple platforms and push docker buildx build --platform linux/amd64,linux/arm64 -t myrepo/myimage:latest --push . # Inspect available builders docker buildx ls ``` ## 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 ` 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 - https://github.com/docker/buildx - https://docs.docker.com/build/ --- Source: https://tokrepo.com/en/workflows/asset-a3c168d1 Author: AI Open Source