You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.5 KiB
2.5 KiB
Buildx drivers overview
The buildx client connects out to the BuildKit backend to execute builds - Buildx drivers allow fine-grained control over management of the backend, and supports several different options for where and how BuildKit should run.
Currently, we support the following drivers:
- The
docker
driver, that uses the BuildKit library bundled into the Docker daemon. (guide, reference) - The
docker-container
driver, that launches a dedicated BuildKit container using Docker, for access to advanced features. (guide, reference) - The
kubernetes
driver, that launches dedicated BuildKit pods in a remote Kubernetes cluster, for scalable builds. (guide, reference) - The
remote
driver, that allows directly connecting to a manually managed BuildKit daemon, for more custom setups. (guide)
To create a new builder that uses one of the above drivers, you can use the
docker buildx create
command:
$ docker buildx create --name=<builder-name> --driver=<driver> --driver-opt=<driver-options>
The build experience is very similar across drivers, however, there are some
features that are not evenly supported across the board, notably, the docker
driver does not include support for certain output/caching types.
Feature | docker |
docker-container |
kubernetes |
remote |
---|---|---|---|---|
Automatic --load |
✅ | ❌ | ❌ | ❌ |
Cache export | ❔ (inline only) | ✅ | ✅ | ✅ |
Docker/OCI tarball output | ❌ | ✅ | ✅ | ✅ |
Multi-arch images | ❌ | ✅ | ✅ | ✅ |
BuildKit configuration | ❌ | ✅ | ✅ | ❔ (managed externally) |