docker buildx create
描述 | 创建一个新的构建器实例 |
---|---|
用法 | docker buildx create [OPTIONS] [CONTEXT|ENDPOINT] |
描述
create
命令创建一个指向 Docker 上下文或端点的新构建器实例,其中 context 是 docker context ls
中的上下文名称,endpoint 是 Docker socket 的地址(例如,DOCKER_HOST
值)。
默认情况下,使用当前的 Docker 配置来确定 context/endpoint 值。
构建器实例是独立的构建环境。所有 Docker 上下文也都会获得默认的构建器实例。
选项
选项 | 默认值 | 描述 |
---|---|---|
--append | 将节点附加到构建器而不是修改它 | |
--bootstrap | 创建后启动构建器 | |
--buildkitd-config | BuildKit 后台进程配置文件 | |
--buildkitd-flags | BuildKit 后台进程标志 | |
--driver | 要使用的驱动(可用:docker-container , kubernetes , remote ) | |
--driver-opt | 驱动选项 | |
--leave | 从构建器中移除节点而不是修改它 | |
--name | 构建器实例名称 | |
--node | 创建/修改具有给定名称的节点 | |
--platform | 当前节点的固定平台 | |
--use | 设置当前构建器实例 |
示例
将新节点附加到现有构建器 (--append)
--append
标志将命令的操作更改为将新节点附加到由 --name
指定的现有构建器。Buildx 将根据其支持的平台为构建选择合适的节点。
$ docker buildx create mycontext1
eager_beaver
$ docker buildx create --name eager_beaver --append mycontext2
eager_beaver
为 BuildKit 后台进程指定配置文件 (--buildkitd-config)
--buildkitd-config FILE
指定 BuildKit 后台进程使用的配置文件。配置可以被 --buildkitd-flags
覆盖。请参阅BuildKit 后台进程配置文件示例。
如果您未指定配置文件,Buildx 默认会在以下位置查找:
$BUILDX_CONFIG/buildkitd.default.toml
$DOCKER_CONFIG/buildx/buildkitd.default.toml
~/.docker/buildx/buildkitd.default.toml
请注意,如果您创建了一个 docker-container
构建器并在 buildkitd.toml
配置中为注册表指定了证书,文件将被复制到容器中的 /etc/buildkit/certs
下,并且配置将更新以反映这一点。
为 BuildKit 后台进程指定选项 (--buildkitd-flags)
--buildkitd-flags FLAGS
在启动 BuildKit 后台进程时添加标志。它们优先于由 --buildkitd-config
指定的配置文件。有关可用标志,请参阅 buildkitd --help
。
--buildkitd-flags '--debug --debugaddr 0.0.0.0:6666'
BuildKit 后台进程网络模式
您可以使用 --buildkitd-config
指定的配置文件中的 worker.oci.networkMode
选项,或使用此处的 --oci-worker-net
标志来指定 BuildKit 后台进程的网络模式。默认值为 auto
,可以是 bridge
、cni
、host
之一。
--buildkitd-flags '--oci-worker-net bridge'
注意
BuildKit v0.13 开始支持 "bridge" 网络模式,并在下一个 v0.14 版本中成为默认模式。
设置要使用的构建器驱动 (--driver)
--driver DRIVER
设置要使用的构建器驱动。驱动是 BuildKit 后端的配置。Buildx 支持以下驱动:
docker
(默认)docker-container
kubernetes
remote
有关构建驱动的更多信息,请参阅此处。
docker
驱动
使用内置在 Docker 后台进程中的构建器。使用此驱动,在 buildx build
上默认隐含 --load
标志。但是,目前不支持构建多平台镜像或导出缓存。
docker-container
驱动
使用将通过 Docker 启动的 BuildKit 容器。使用此驱动,支持构建多平台镜像和导出缓存。
与 docker
驱动不同,构建的镜像不会自动出现在 docker images
中,需要使用 build --load
来实现。
kubernetes
驱动
使用 Kubernetes pod。使用此驱动,您可以启动具有指定 BuildKit 容器镜像的 pod 来构建您的镜像。
与 docker
驱动不同,构建的镜像不会自动出现在 docker images
中,需要使用 build --load
来实现。
remote
驱动
通过任意连接使用 BuildKit 后台进程的远程实例。使用此驱动,您需要手动创建和管理 BuildKit 实例,并配置 Buildx 以指向它。
与 docker
驱动不同,构建的镜像不会自动出现在 docker images
中,需要使用 build --load
来实现。
设置附加的驱动特定选项 (--driver-opt)
--driver-opt OPTIONS
传递附加的驱动特定选项。有关可用驱动选项的信息,请参阅特定驱动的详细文档。
从构建器中移除节点 (--leave)
--leave
标志将命令的操作更改为从构建器中移除节点。构建器需要使用 --name
指定,要移除的节点使用 --node
设置。
$ docker buildx create --name mybuilder --node mybuilder0 --leave
指定构建器名称 (--name)
--name NAME
--name
标志指定要创建或修改的构建器的名称。如果未指定,将自动生成一个名称。
指定节点名称 (--node)
--node NODE
--node
标志指定要创建或修改的节点的名称。如果您未指定名称,节点名称默认为其所属构建器的名称加上索引号后缀。
设置节点支持的平台 (--platform)
--platform PLATFORMS
--platform
标志设置节点支持的平台。它期望一个逗号分隔的平台列表,格式为 OS/architecture/variant。节点也会自动检测其支持的平台,但手动值优先于检测到的值,并且可以在多个节点支持构建同一平台时使用。
$ docker buildx create --platform linux/amd64
$ docker buildx create --platform linux/arm64,linux/arm/v7
自动切换到新创建的构建器 (--use)
--use
标志自动将当前构建器切换到新创建的构建器。这相当于运行 docker buildx use $(docker buildx create ...)
。