镜像和注册表导出器

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

概要

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

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

下表描述了可以传递给 --outputtype=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
compression-level0..22压缩级别,参见 compression
force-compressiontrue,falsefalse强制应用压缩,参见 compression
rewrite-timestamptrue,falsefalse将文件时间戳重写为 SOURCE_DATE_EPOCH 值。参见 build reproducibility,了解如何指定 SOURCE_DATE_EPOCH 值。
oci-mediatypestrue,falsefalse在导出器清单中使用 OCI 媒体类型,参见 OCI Media types
oci-artifacttrue,falsefalse证明格式化为 OCI Artifact,参见 OCI Media types
unpacktrue,falsefalse创建镜像后解压(与 containerd 一起使用)
storetrue,falsetrue将结果镜像存储到 worker(例如,containerd)的镜像存储中,并确保镜像在内容存储中拥有所有 blob。如果 worker 没有镜像存储(例如,使用 OCI worker 时),则忽略此项。
annotation.<key>String将带有相应 keyvalue 的注解附加到构建的镜像,参见 annotations

注解

这些导出器支持使用 annotation 参数添加 OCI 注解,后跟使用点符号的注解名称。以下示例设置了 org.opencontainers.image.title 注解

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

有关注解的更多信息,请参阅 BuildKit documentation

进一步阅读

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

页面选项