docker buildx 创建
描述 | 创建一个新的构建器实例 |
---|---|
用法 | docker buildx create [OPTIONS] [CONTEXT|ENDPOINT] |
描述
Create 创建一个指向 Docker 上下文或端点的新构建器实例,其中上下文是上下文的名称docker context ls
,端点是 Docker 套接字的地址(例如DOCKER_HOST
值)。
默认情况下,当前的 Docker 配置用于确定上下文/端点值。
构建器实例是可以调用构建的隔离环境。所有 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
选项或标志指定的配置文件来指定 BuildKit 守护程序的网络模式
--oci-worker-net
。默认值为、、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 守护进程中内置的构建器。对于此驱动程序,该
--load
标志默认隐含在 上
buildx build
。但是,当前不支持构建多平台图像或导出缓存。
docker 容器驱动程序
使用将通过 Docker 生成的 BuildKit 容器。使用此驱动程序,可以支持构建多平台图像和导出缓存。
与驱动程序不同docker
,构建的图像不会自动出现
docker images
,
build --load
需要使用它来实现这一点。
Kubernetes 驱动程序
使用 Kubernetes Pod。使用此驱动程序,您可以使用定义的 BuildKit 容器映像启动 pod 来构建映像。
与驱动程序不同docker
,构建的图像不会自动出现
docker images
,
build --load
需要使用它来实现这一点。
远程驱动程序
通过任意连接使用 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
标志设置节点支持的平台。它需要一个以逗号分隔的操作系统/体系结构/变体形式的平台列表。节点还会自动检测其支持的平台,但手动值优先于检测到的平台,并且可以在多个节点支持同一平台构建时使用。
$ docker buildx create --platform linux/amd64
$ docker buildx create --platform linux/arm64,linux/arm/v7
自动切换到新创建的构建器(--use)
该--use
标志会自动将当前构建器切换到新创建的构建器。相当于运行docker buildx use $(docker buildx create ...)
。