使用 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
打开 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 一起使用 secrets
要将构建 secrets 与 Docker Build Cloud 一起使用(例如认证凭据或令牌),请对 docker buildx
命令使用 --secret
和 --ssh
CLI 标志。流量经过加密,并且 secrets 绝不会存储在构建缓存中。
警告
如果您正在滥用构建参数来传递凭据、认证令牌或其他 secrets,您应该重构您的构建,改为使用secret mounts 来传递 secrets。构建参数存储在缓存中,其值会通过证明暴露。Secret mounts 不会泄露到构建外部,也绝不会包含在证明中。
更多信息,请参阅:
管理构建缓存
您无需手动管理 Docker Build Cloud 缓存。系统会通过垃圾回收为您进行管理。
达到存储限制时,旧缓存会自动移除。您可以使用docker buildx du
命令检查当前缓存状态。
要手动清理构建器的缓存,请使用docker buildx prune
命令。这与清理任何其他构建器的缓存一样有效。
警告
清理云构建器的缓存也会移除使用同一构建器的其他团队成员的缓存。
取消将 Docker Build Cloud 设为默认构建器
如果您已将云构建器设置为默认构建器,并想恢复为默认的 docker
构建器,请运行以下命令:
$ docker context use default
这不会从系统中移除构建器。它仅更改自动选择用于运行构建的构建器。
内网上的仓库
可以在内网中使用私有仓库或仓库镜像来搭配使用 Docker Build Cloud。