镜像和注册表导出器

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

概要

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

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

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

参数类型默认值描述
name字符串指定镜像名称
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)的镜像存储中,并确保镜像在内容存储中具有所有块。如果工作节点没有镜像存储(例如,使用OCI工作节点时),则忽略。
annotation.<key>字符串使用相应的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自述文件