使用 Docker Build Cloud 进行构建
要使用 Docker Build Cloud 进行构建,请调用构建命令并使用--builder
标志指定构建器的名称。
$ docker buildx build --builder cloud-<ORG>-<BUILDER_NAME> --tag <IMAGE> .
默认使用
如果您想使用 Docker Build Cloud 而无需每次都指定--builder
标志,您可以将其设置为默认构建器。
运行以下命令
$ docker buildx use cloud-<ORG>-<BUILDER_NAME> --global
打开 Docker Desktop 设置并导航到“**构建器**”选项卡。
在“**可用构建器**”下找到云构建器。
打开下拉菜单并选择“**使用**”。
使用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
这不会从您的系统中删除构建器。它只会更改自动选择的用于运行构建的构建器。
内部网络上的注册表
无法在内部网络(VPN 后)使用私有注册表或注册表镜像与 Docker Build Cloud 配合使用。云构建器与之交互的所有端点(包括 OCI 注册表)都必须可以通过互联网访问。
有兴趣尝试实验性功能吗?
我们目前正在测试一项实验性功能,该功能允许云构建器访问内部资源。
如果您有兴趣尝试此功能,请使用支持表单联系我们。