镜像与注册表导出器

image 导出器将构建结果输出为容器镜像格式。与之相同的是 registry 导出器,但它通过设置 push=true 自动推送结果。

概述

使用 imageregistry 导出器构建容器镜像:

$ docker buildx build --output type=image[,parameters] .
$ docker buildx build --output type=registry[,parameters] .

以下表格描述了您可以传递给--output的可用参数,用于type=image

参数类型默认描述
namestring指定镜像名称
pushtrue,falsefalse创建镜像后进行推送。
push-by-digesttrue,falsefalse推送无名称的镜像。
registry.insecuretrue,falsefalse允许推送至不安全的注册表。
dangling-name-prefix<value>使用 prefix@<digest> 为匿名镜像命名
name-canonicaltrue,false添加额外的规范名称 name@<digest>
compressionuncompressed,gzip,estargz,zstdgzip压缩类型,参见 压缩
compression-level0..22压缩级别,参见 压缩
force-compressiontrue,falsefalse强制应用压缩,参见 压缩
rewrite-timestamptrue,falsefalse将文件时间戳重写为SOURCE_DATE_EPOCH值。参见 构建可重现性了解如何指定SOURCE_DATE_EPOCH值。
oci-mediatypestrue,falsefalse在导出器清单中使用 OCI 媒体类型,参见 OCI 媒体类型
unpacktrue,falsefalse创建后解包镜像(用于containerd)
storetrue,falsetrue将结果镜像存储到工作节点的镜像存储(例如,containerd),并确保镜像在内容存储中包含所有 Blob。如果工作节点没有镜像存储(例如,使用 OCI 工作者时),则忽略此设置。
annotation.<key>string将相应的 keyvalue 注解附加到构建的镜像,参见 注解

注解

这些导出器支持使用参数annotation添加OCI注解, 然后使用点表示法指定注解名称。以下示例设置了注解org.opencontainers.image.title

$ docker buildx build \
    --output "type=<type>,name=<registry>/<image>,annotation.org.opencontainers.image.title=<title>" .

有关注释的更多信息,请参阅 BuildKit 文档

进一步阅读

有关 imageregistry 导出器的更多信息,请参阅 BuildKit README