docker buildx create
描述 | 建立新的構建器例項 |
---|---|
用法 | docker buildx create [OPTIONS] [CONTEXT|ENDPOINT] |
描述
`create` 命令建立一個新的構建器例項,指向一個 Docker 上下文或端點,其中上下文是 `docker context ls` 中的上下文名稱,端點是 Docker socket 的地址(例如 `DOCKER_HOST` 值)。
預設情況下,當前 Docker 配置用於確定上下文/端點值。
構建器例項是獨立的構建環境。所有 Docker 上下文也會獲得預設構建器例項。
選項
選項 | 預設值 | 描述 |
---|---|---|
--append | 將節點附加到構建器而不是更改它 | |
--bootstrap | 建立後引導構建器 | |
--buildkitd-config | BuildKit 守護程序配置檔案 | |
--buildkitd-flags | BuildKit 守護程序標誌 | |
--driver | 要使用的驅動程式(可用:`docker-container`、`kubernetes`、`remote`) | |
--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
為 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'
注意網路模式 "bridge" 自 BuildKit v0.13 起受支援,並將成為下一個 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 ...)
。