docker buildx create

說明建立新的建置器執行個體
用法docker buildx create [選項] [環境/端點]

說明

Create 命令會建立一個新的建置器執行個體,指向 Docker 環境或端點,其中環境是 docker context ls 中環境的名稱,而端點是 Docker Socket 的地址(例如 DOCKER_HOST 值)。

預設情況下,會使用目前的 Docker 設定來決定環境/端點值。

建置器執行個體是隔離的環境,可以在其中叫用建置。所有 Docker 環境也會取得預設的建置器執行個體。

選項

選項預設值說明
--append將節點附加到建置器,而不是變更它
--bootstrap建立後啟動建置器
--buildkitd-configBuildKit 常駐程式設定檔
--buildkitd-flagsBuildKit 常駐程式旗標
--driver要使用的驅動程式(可用選項:docker-containerkubernetesremote
--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 常駐程式設定檔範例指定 BuildKit daemon 的選項 (--buildkitd-flags)

在啟動 BuildKit daemon 時新增旗標。這些旗標的優先順序高於 --buildkitd-config 指定的設定檔。關於可用的旗標,請參閱 buildkitd --help

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

BuildKit daemon 網路模式

您可以使用 --buildkitd-config 指定的設定檔中的 worker.oci.networkMode 選項,或是使用此處的 --oci-worker-net 旗標來指定 BuildKit daemon 的網路模式。預設值是 auto,可以是 bridgecnihost 之一。

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

注意事項

自 BuildKit v0.13 起支援網路模式 "bridge",並將在 v0.14 中成為預設值。

設定要使用的建構器驅動程式 (--driver)

--driver DRIVER

設定要使用的建構器驅動程式。驅動程式是 BuildKit 後端的設定。Buildx 支援以下驅動程式:

  • docker(預設)
  • docker-container
  • kubernetes
  • remote

關於建構驅動程式的更多資訊,請參閱這裡

docker 驅動程式

使用內建於 Docker daemon 的建構器。使用此驅動程式時,在 buildx build 中預設會啟用 --load 旗標。但是,目前不支援建構多平台映像檔或匯出快取。

docker-container 驅動程式

使用將透過 Docker 產生的 BuildKit 容器。使用此驅動程式,支援建構多平台映像檔和匯出快取。

docker 驅動程式不同,建構的映像檔不會自動出現在 docker images 中,需要使用 build --load 才能達成。

kubernetes 驅動程式

使用 Kubernetes pods。使用此驅動程式,您可以啟動具有定義的 BuildKit 容器映像檔的 pods 來建構您的映像檔。

docker 驅動程式不同,建構的映像檔不會自動出現在 docker images 中,需要使用 build --load 才能達成。

remote 驅動程式

透過任意連線使用 BuildKit daemon 的遠端執行個體。使用此驅動程式,您需要自行手動建立和管理 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 ...)