docker buildx 创建

描述创建新的生成器实例
用法docker buildx create [OPTIONS] [CONTEXT|ENDPOINT]

描述

Create 会创建一个指向 Docker 上下文或端点的新构建器实例, 其中 context 是上下文的名称 from,endpoint 是 Docker 套接字的地址(例如。 值)。docker context lsDOCKER_HOST

默认情况下,当前的 Docker 配置用于确定 context/endpoint 值。

生成器实例是可以调用生成的隔离环境。都 Docker 上下文还会获取默认的生成器实例。

选项

选择违约描述
--append将节点附加到生成器,而不是更改它
--bootstrap创建后的引导生成器
--buildkitd-configBuildKit 守护进程配置文件
--buildkitd-flagsBuildKit 守护进程标志
--driver要使用的驱动程序(可用:、、docker-containerkubernetesremote)
--driver-opt驱动程序选项
--leave从 builder 中删除节点,而不是更改它
--nameBuilder 实例名称
--node创建/修改具有给定名称的节点
--platform当前节点的固定平台
--use设置当前生成器实例

例子

将新节点追加到现有生成器 (--append)

该标志更改命令的操作,以将新节点附加到 由 指定的现有生成器。Buildx 将选择合适的节点 对于基于它支持的平台的构建。--append--name

$ 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

请注意,如果您创建一个构建器并已指定 注册表的证书,文件 将被复制到 AND CONFIGURATION 下的容器中 将更新以反映这一点。docker-containerbuildkitd.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 在此处使用选项或标志指定。默认的 value 是 , , 可以是 , , :worker.oci.networkMode--oci-worker-netautobridgecnihost

--buildkitd-flags '--oci-worker-net bridge'

注意

网络模式 “bridge” 从 BuildKit v0.13 开始支持,并将成为 default 在 next v0.14 中。

设置要使用的构建器驱动程序 (--driver)

--driver DRIVER

设置要使用的 builder 驱动程序。驱动程序是 BuildKit 的一种配置 backend 的Buildx 支持以下驱动程序:

  • docker(默认)
  • docker-container
  • kubernetes
  • remote

有关生成驱动程序的更多信息,请参阅此处

Docker 驱动程序

使用 Docker 守护程序中内置的构建器。使用此驱动程序, 默认情况下,--load 标志隐含在 上。但是,构建多平台镜像或导出缓存是 当前不支持。buildx build

docker-container 驱动程序

使用将通过 Docker 生成的 BuildKit 容器。使用此驱动程序, 支持构建多平台镜像和导出缓存。

与 driver 不同,构建的镜像不会自动出现在 build 中,并且需要使用 build --load 以实现这一目标。dockerdocker images

Kubernetes 驱动程序

使用 Kubernetes Pod。使用此驱动程序,您可以启动已定义的 Pod BuildKit 容器镜像来构建您的镜像。

与 driver 不同,构建的镜像不会自动出现在 build 中,并且需要使用 build --load 以实现这一目标。dockerdocker images

远程驱动程序

通过任意连接使用 BuildKit 守护程序的远程实例。跟 此驱动程序,您可以自己手动创建和管理 Buildkit 实例,以及 配置 buildX 以指向它。

与 driver 不同,构建的镜像不会自动出现在 build 中,并且需要使用 build --load 以实现这一目标。dockerdocker images

设置其他特定于驱动程序的选项 (--driver-opt)

--driver-opt OPTIONS

传递其他特定于驱动程序的选项。 有关可用驱动程序选项的信息,请参阅详细的 特定驱动程序的文档:

从构建器中删除节点 (--leave)

该标志更改命令的操作,以从 建筑工人。需要使用已删除的 和 node 指定生成器 设置为 。--leave--name--node

$ docker buildx create --name mybuilder --node mybuilder0 --leave

指定生成器的名称 (--name)

--name NAME

该标志指定要创建或修改的生成器的名称。 如果未指定,将自动生成一个。--name

指定节点的名称 (--node)

--node NODE

该标志指定要创建或修改的节点的名称。如果 您不指定名称,节点名称默认为生成器的名称 it 属于,带有索引号后缀。--node

设置节点支持的平台 (--platform)

--platform PLATFORMS

该标志设置节点支持的平台。它期望 以逗号分隔的平台列表,格式为 OS/architecture/variant。节点 也会自动检测它支持的平台,但手动值采用 优先于检测到的 URL,并且可以在多个节点支持 为同一平台构建。--platform

$ docker buildx create --platform linux/amd64
$ docker buildx create --platform linux/arm64,linux/arm/v7

自动切换到新创建的生成器 (--use)

该标志会自动将当前构建器切换到新创建的 一。相当于运行 .--usedocker buildx use $(docker buildx create ...)