使用 Docker 构建云进行构建

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

$ 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. 打开下拉菜单并选择使用

    使用 Docker 桌面 GUI 选择云构建器作为默认值

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

如果您使用构建脚本,例如make,我们建议您将构建命令从 更新docker builddocker buildx build,以避免在构建器选择方面出现任何混乱。或者,您可以运行docker buildx install以使默认docker build命令的行为类似于docker buildx build,而不会出现差异。

与 Docker Compose 一起使用

要使用 Docker Build Cloud 进行构建docker compose build,请首先将云构建器设置为您选择的构建器,然后运行构建。

笔记

确保您使用的是受支持的 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 .

多平台构建

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

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

如果您未指定平台,云构建器会自动构建与您本地环境匹配的架构。

要了解有关针对多个平台进行构建的更多信息,请参阅 多平台构建

Docker Desktop 中的云构建

Docker Desktop Builds 视图可与 Docker Build Cloud 一起使用,开箱即用。此视图不仅可以显示有关您自己的构建的信息,还可以显示有关您的团队成员使用同一构建器启动的构建的信息。

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

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

这使您和您的团队可以协作排除故障并提高构建速度,而无需在彼此之间来回发送构建日志和基准测试。

在 Docker Build Cloud 中使用机密

要在 Docker Build Cloud 中使用构建机密(例如身份验证凭据或令牌),请在命令中使用--secret--sshCLI 标志docker buildx。流量被加密,秘密永远不会存储在构建缓存中。

警告

如果您滥用构建参数来传递凭据、身份验证令牌或其他机密,则应该重构您的构建以使用 机密挂载来传递机密。构建参数存储在缓存中,它们的值通过证明公开。秘密安装不会泄漏到构建之外,并且永远不会包含在证明中。

欲了解更多信息,请参阅:

管理构建缓存

您不需要手动管理 Docker Build Cloud 缓存。系统通过 垃圾收集为您管理它。

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

要手动清除构建器的缓存,请使用 docker buildx prune命令。这就像修剪任何其他构建器的缓存一样。

警告

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

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

如果您已将云构建器设置为默认构建器并想要恢复为默认docker构建器,请运行以下命令:

$ docker context use default

这不会从您的系统中删除构建器。它只会更改自动选择来运行构建的构建器。

内部网络上的注册表

无法将 Docker Build Cloud 与 VPN 后面的内部网络上的私有注册表或注册表镜像一起使用。云构建器与之交互的所有端点(包括 OCI 注册表)都必须可通过 Internet 访问。