使用 Docker Build Cloud 构建

要使用 Docker Build Cloud 进行构建,请执行构建命令,并使用 - 标志指定构建器的名称。

$ docker buildx build --builder cloud-<ORG>-<BUILDER_NAME> --tag <IMAGE> .

默认使用

如果您希望在不每次指定 --builder 标志的情况下使用 Docker Build Cloud,可以将其设置为默认构建器。


运行以下命令:

$ docker buildx use cloud-<ORG>-<BUILDER_NAME> --global
  1. 打开 Docker Desktop 设置,然后导航到 构建器(Builders) 选项卡。

  2. 可用构建器下找到云构建器。

  3. 打开下拉菜单并选择 使用

    Selecting the cloud builder as default using the Docker Desktop GUI

使用 docker buildx use 更改默认构建器仅会更改 docker buildx build 命令的默认构建器。docker build 命令仍使用 default 构建器,除非显式指定 --builder 标志。

如果您使用构建脚本(例如 make),我们建议您将构建命令从 docker build 更新为 docker buildx build,以避免在构建器选择方面产生混淆。或者,您也可以运行 docker buildx install,使默认的 docker build 命令行为与 docker buildx build 保持一致,避免出现差异。

与 Docker Compose 配合使用

要使用 docker compose build 构建 Docker Build Cloud,请先将云构建器设为所选构建器,然后运行构建命令。

注意

请确保您使用的是受支持的 Docker Compose 版本,详见 先决条件

$ docker buildx use cloud-<ORG>-<BUILDER_NAME>
$ docker compose build

除了 docker buildx use,您还可以使用 docker compose build --builder 标志或 BUILDX_BUILDER 环境变量来选择云构建器。

正在加载构建结果

使用 --tag 构建会在构建完成后自动将构建结果加载到本地镜像存储中。 若要不指定标签进行构建并将结果加载,必须传递 --load 标志。

加载多平台镜像的构建结果不被支持。在构建多平台镜像时,请使用 docker buildx build --push 标志将输出推送到镜像仓库。

$ docker buildx build --builder cloud-<ORG>-<BUILDER_NAME> \
  --platform linux/amd64,linux/arm64 \
  --tag <IMAGE> \
  --push .

如果您想要构建并打标签,但又不希望将构建结果加载到本地镜像存储中,您可以仅将构建结果导出到构建缓存中:

$ docker buildx build --builder cloud-<ORG>-<BUILDER_NAME> \
  --platform linux/amd64,linux/arm64 \
  --tag <IMAGE> \
  --output type=cacheonly .

多平台构建

要运行多平台构建,您必须使用 -p 标志指定要构建的所有平台。

$ docker buildx build --builder cloud-<ORG>-<BUILDER_NAME> \
  --platform linux/amd64,linux/arm64 \
  --tag <IMAGE> \
  --push .

如果您未指定平台,云构建器将自动为您本地环境对应的架构构建。

要了解有关为多个平台构建的更多信息,请参阅 多平台构建

Docker Desktop 中的云构建

Docker Desktop 构建视图开箱即用地支持 Docker Build Cloud。该视图不仅可以显示您自己的构建信息,还可以显示由您的团队成员使用同一构建器发起的构建信息。

使用共享构建器的团队可以访问以下信息:

  • 正在进行和已完成的构建
  • 构建配置、统计信息、依赖项和结果
  • 构建源(Dockerfile)
  • 构建日志与错误

这使您和您的团队能够协作排查问题并提升构建速度,而无需在彼此之间反复发送构建日志和基准测试结果。

在 Docker Build Cloud 中使用密钥

要将构建密钥与 Docker Build Cloud 配合使用, 例如认证凭据或令牌, 请对 docker buildx 命令使用 --secret--ssh CLI 标志。 流量已加密,密钥不会存储在构建缓存中。

警告

如果您正在错误地使用构建参数来传递凭据、身份验证令牌或其他机密信息,您应重构构建流程,改用机密挂载方式来传递机密信息。 构建参数会被存储在缓存中,其值会通过构建证明(attestations)暴露出来; 而机密挂载则不会泄露到构建过程之外,且永远不会包含在构建证明中。

有关更多信息,请参考:

管理构建缓存

您无需手动管理 Docker Build Cloud 的缓存。 系统会通过 垃圾回收 自动为您管理。

如果达到存储空间限制,旧缓存将被自动删除。 您可以使用 docker buildx du 命令来检查当前缓存状态。

要手动清除构建器缓存, 请使用 docker buildx prune 命令。 其作用类似于为其他构建器清除缓存。

警告

修剪云构建器的缓存也会移除其他使用同一构建器的团队成员的缓存。

取消将 Docker Build Cloud 设置为默认构建器

如果您已将云生成器设置为默认生成器, 并希望恢复为默认的 docker 生成器, 请运行以下命令:

$ docker context use default

这不会从您的系统中移除构建器。 它仅更改自动选中用于运行构建的构建器。

内部网络上的镜像仓库

无法在通过VPN连接的内部网络中,将Docker Build Cloud与私有registry或registry镜像配合使用。 云构建器需要访问的所有端点(包括OCI registry)都必须可通过互联网访问。

想试用一项实验性功能吗?

我们目前正在测试一项实验性功能,该功能允许云构建者访问内部资源。

如果您希望尝试此功能,请通过以下 支持表单与我们联系。