docker buildx create
Description
Create a new builder instance
Usage
$ docker buildx create [OPTIONS] [CONTEXT|ENDPOINT]
Extended description
Create makes a new builder instance pointing to a docker context or endpoint,
where context is the name of a context from docker context ls
and endpoint is
the address for docker socket (eg. DOCKER_HOST
value).
By default, the current Docker configuration is used for determining the context/endpoint value.
Builder instances are isolated environments where builds can be invoked. All Docker contexts also get the default builder instance.
For example uses of this command, refer to the examples section below.
Options
Name, shorthand | Default | Description |
--append |
Append a node to builder instead of changing it | |
--buildkitd-flags |
Flags for buildkitd daemon | |
--config |
BuildKit config file | |
--driver |
Driver to use (available: []) | |
--driver-opt |
Options for the driver | |
--leave |
Remove a node from builder instead of changing it | |
--name |
Builder instance name | |
--node |
Create/modify node with given name | |
--platform |
Fixed platforms for current node | |
--use |
Set the current builder instance | |
--builder |
Override the configured builder instance |
Examples
Append a new node to an existing builder (--append)
The --append
flag changes the action of the command to append a new node to an
existing builder specified by --name
. Buildx will choose an appropriate node
for a build based on the platforms it supports.
Examples
$ docker buildx create mycontext1
eager_beaver
$ docker buildx create --name eager_beaver --append mycontext2
eager_beaver
Specify options for the buildkitd daemon (--buildkitd-flags)
--buildkitd-flags FLAGS
Adds flags when starting the buildkitd daemon. They take precedence over the
configuration file specified by --config
. See buildkitd --help
for the available flags.
Example
--buildkitd-flags '--debug --debugaddr 0.0.0.0:6666'
Specify a configuration file for the buildkitd daemon (--config)
--config FILE
Specifies the configuration file for the buildkitd daemon to use. The configuration
can be overridden by --buildkitd-flags
.
See an example buildkitd configuration file.
Set the builder driver to use (--driver)
--driver DRIVER
Sets the builder driver to be used. There are two available drivers, each have their own specificities.
docker
- Uses the builder that is built into the docker daemon. With this driver, the--load
flag is implied by default onbuildx build
. However, building multi-platform images or exporting cache is not currently supported.docker-container
- Uses a buildkit container that will be spawned via docker. With this driver, both building multi-platform images and exporting cache are supported. However, images built will not automatically appear indocker images
(seebuild --load
).kubernetes
- Uses a kubernetes pods. With this driver, you can spin up pods with defined buildkit container image to build your images.
Set additional driver-specific options (--driver-opt)
--driver-opt OPTIONS
Passes additional driver-specific options. Details for each driver:
docker
- No driver optionsdocker-container
image=IMAGE
- Sets the container image to be used for running buildkit.network=NETMODE
- Sets the network mode for running the buildkit container.-
Example:
--driver docker-container --driver-opt image=moby/buildkit:master,network=host
kubernetes
image=IMAGE
- Sets the container image to be used for running buildkit.namespace=NS
- Sets the Kubernetes namespace. Defaults to the current namespace.replicas=N
- Sets the number ofPod
replicas. Defaults to 1.nodeselector="label1=value1,label2=value2"
- Sets the kv ofPod
nodeSelector. No Defaults. Examplenodeselector=kubernetes.io/arch=arm64
rootless=(true|false)
- Run the container as a non-root user withoutsecurityContext.privileged
. Using Ubuntu host kernel is recommended. Defaults to false.loadbalance=(sticky|random)
- Load-balancing strategy. If set to “sticky”, the pod is chosen using the hash of the context path. Defaults to “sticky”
Remove a node from a builder (--leave)
The --leave
flag changes the action of the command to remove a node from a
builder. The builder needs to be specified with --name
and node that is removed
is set with --node
.
Examples
$ docker buildx create --name mybuilder --node mybuilder0 --leave
Specify the name of the builder (--name)
--name NAME
The --name
flag specifies the name of the builder to be created or modified.
If none is specified, one will be automatically generated.
Specify the name of the node (--node)
--node NODE
The --node
flag specifies the name of the node to be created or modified. If
none is specified, it is the name of the builder it belongs to, with an index
number suffix.
Set the platforms supported by the node
--platform PLATFORMS
The --platform
flag sets the platforms supported by the node. It expects a
comma-separated list of platforms of the form OS/architecture/variant. The node
will also automatically detect the platforms it supports, but manual values take
priority over the detected ones and can be used when multiple nodes support
building for the same platform.
Examples
$ docker buildx create --platform linux/amd64
$ docker buildx create --platform linux/arm64,linux/arm/v8
Automatically switch to the newly created builder
The --use
flag automatically switches the current builder to the newly created
one. Equivalent to running docker buildx use $(docker buildx create ...)
.
Parent command
Command | Description |
---|---|
docker buildx | Build with BuildKit |
Related commands
Command | Description |
docker buildx bake | Build from a file |
docker buildx build | Start a build |
docker buildx create | Create a new builder instance |
docker buildx du | Disk usage |
docker buildx imagetools | Commands to work on images in registry |
docker buildx inspect | Inspect current builder instance |
docker buildx ls | List builder instances |
docker buildx prune | Remove build cache |
docker buildx rm | Remove a builder instance |
docker buildx stop | Stop builder instance |
docker buildx use | Set the current builder instance |
docker buildx version | Show buildx version information |