docker buildx创建

描述

创建一个新的构建器实例

用法

$ docker buildx create [OPTIONS] [CONTEXT|ENDPOINT]

扩展说明

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

默认情况下,当前Docker配置用于确定上下文/端点值。

构建器实例是可以调用构建的隔离环境。所有Docker上下文还获得默认的构建器实例。

有关此命令的示例用法,请参阅下面的示例部分

选项

名称,简写 默认 描述
--append 将节点附加到构建器,而不是对其进行更改
--buildkitd-flags buildkitd守护程序的标志
--config BuildKit配置文件
--driver 要使用的驱动程序(可用:[])
--driver-opt 驱动程序选项
--leave 从构建器中删除节点,而不是对其进行更改
--name 生成器实例名称
--node 使用给定名称创建/修改节点
--platform 当前节点的固定平台
--use 设置当前的构建器实例
--builder 覆盖已配置的构建器实例

例子

将新节点附加到现有构建器(--append)

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

例子

$ docker buildx create mycontext1
eager_beaver

$ docker buildx create --name eager_beaver --append mycontext2
eager_beaver

指定buildkitd守护程序的选项(--buildkitd-flags)

--buildkitd-flags FLAGS

启动buildkitd守护程序时添加标志。它们优先于所指定的配置文件--config。请参阅buildkitd --help 以获取可用的标志。

例子

--buildkitd-flags '--debug --debugaddr 0.0.0.0:6666'

指定buildkitd守护程序的配置文件(--config)

--config FILE

指定要使用的buildkitd守护程序的配置文件。该配置可以被覆盖--buildkitd-flags。请参阅示例buildkitd配置文件

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

--driver DRIVER

设置要使用的构建器驱动程序。有两种可用的驱动程序,每种都有各自的特性。

  • docker-使用内置在docker守护进程中的构建器。使用此驱动程序时,--load默认情况下将标志隐含在上 buildx build。但是,当前不支持构建多平台图像或导出缓存。
  • docker-container-使用将通过docker生成的buildkit容器。使用此驱动程序,既支持构建多平台图像,又支持导出缓存。但是,生成的图像不会自动出现在中docker images (请参阅参考资料build --load)。
  • kubernetes-使用kubernetes吊舱。使用此驱动程序,您可以使用定义的buildkit容器映像启动pod来构建映像。

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

--driver-opt OPTIONS

传递其他特定于驱动程序的选项。每个驱动程序的详细信息:

  • docker -没有驱动程序选项
  • docker-container
    • image=IMAGE -设置用于运行buildkit的容器映像。
    • network=NETMODE -设置用于运行buildkit容器的网络模式。
    • 例子:

      --driver docker-container --driver-opt image=moby/buildkit:master,network=host
      
  • kubernetes
    • image=IMAGE -设置用于运行buildkit的容器映像。
    • namespace=NS-设置Kubernetes命名空间。默认为当前名称空间。
    • replicas=N-设置Pod副本数。默认为1。
    • nodeselector="label1=value1,label2=value2"-设置PodnodeSelector的kv 。没有默认值。例子nodeselector=kubernetes.io/arch=arm64
    • rootless=(true|false)-以非root用户身份运行容器,不使用securityContext.privileged建议使用Ubuntu主机内核。默认为false。
    • loadbalance=(sticky|random)-负载平衡策略。如果设置为“ sticky”,则使用上下文路径的哈希值来选择容器。默认为“粘性”

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

--leave标志更改命令的操作,以从构建器中删除节点。需要使用来指定构建器,--name并使用来设置要删除的节点--node

例子

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

指定构建器的名称(--name)

--name NAME

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

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

--node NODE

--node标志指定要创建或修改的节点的名称。如果未指定,则为它所属的构建器的名称,后缀为索引号。

设置节点支持的平台

--platform PLATFORMS

--platform标志设置节点支持的平台。它期望以逗号分隔的OS /体系结构/变体形式的平台列表。该节点还将自动检测其支持的平台,但是手动值的优先级高于检测到的值,并且当多个节点支持针对同一平台的构建时,可以使用手动值。

例子

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

自动切换到新创建的构建器

--use标志自动将当前构建器切换到新创建的构建器。相当于跑步docker buildx use $(docker buildx create ...)

上级命令

命令 描述
docker buildx 使用BuildKit进行构建
命令 描述
docker buildx烘烤 从文件构建
docker buildx构建 开始构建
docker buildx创建 创建一个新的构建器实例
docker buildx du 磁盘使用情况
docker buildx imagetools 在注册表中处理图像的命令
docker buildx检查 检查当前的构建器实例
docker buildx ls 列出构建器实例
docker buildx修剪 删除构建缓存
docker buildx rm 删除构建器实例
docker buildx停止 停止构建器实例
docker buildx使用 设置当前的构建器实例
docker buildx版本 显示buildx版本信息