使用 Docker Build Cloud 构建

要使用 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 设置并导航到**构建器**选项卡。

  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 .

多平台构建

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

$ 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 标志。流量经过加密,秘密永远不会存储在构建缓存中。

警告

如果您误用构建参数来传递凭据、身份验证令牌或其他秘密,您应该重构您的构建,改用秘密挂载来传递秘密。构建参数存储在缓存中,其值通过认证公开。秘密挂载不会泄露到构建之外,也永远不会包含在认证中。

有关更多信息,请参阅

管理构建缓存

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

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

要手动清除构建器的缓存,请使用`docker buildx prune` 命令。这与其他构建器清除缓存的方式相同。

警告

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

取消 Docker Build Cloud 作为默认构建器

如果您已将云构建器设置为默认构建器,并且希望恢复到默认的 `docker` 构建器,请运行以下命令

$ docker context use default

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

内部网络上的注册表

可以使用 Docker Build Cloud 配合专用注册表或内部网络上的注册表镜像。

© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.