镜像与注册表导出器
目录
image 导出器将构建结果输出为容器镜像格式。与之相同的是 registry 导出器,但它通过设置 push=true 自动推送结果。
概述
使用 image 和 registry 导出器构建容器镜像:
$ docker buildx build --output type=image[,parameters] .
$ docker buildx build --output type=registry[,parameters] .
以下表格描述了您可以传递给--output的可用参数,用于type=image:
| 参数 | 类型 | 默认 | 描述 |
|---|---|---|---|
name | string | 指定镜像名称 | |
push | true,false | false | 创建镜像后进行推送。 |
push-by-digest | true,false | false | 推送无名称的镜像。 |
registry.insecure | true,false | false | 允许推送至不安全的注册表。 |
dangling-name-prefix | <value> | 使用 prefix@<digest> 为匿名镜像命名 | |
name-canonical | true,false | 添加额外的规范名称 name@<digest> | |
compression | uncompressed,gzip,estargz,zstd | gzip | 压缩类型,参见 压缩 |
compression-level | 0..22 | 压缩级别,参见 压缩 | |
force-compression | true,false | false | 强制应用压缩,参见 压缩 |
rewrite-timestamp | true,false | false | 将文件时间戳重写为SOURCE_DATE_EPOCH值。参见
构建可重现性了解如何指定SOURCE_DATE_EPOCH值。 |
oci-mediatypes | true,false | false | 在导出器清单中使用 OCI 媒体类型,参见 OCI 媒体类型 |
unpack | true,false | false | 创建后解包镜像(用于containerd) |
store | true,false | true | 将结果镜像存储到工作节点的镜像存储(例如,containerd),并确保镜像在内容存储中包含所有 Blob。如果工作节点没有镜像存储(例如,使用 OCI 工作者时),则忽略此设置。 |
annotation.<key> | string | 将相应的 key 和 value 注解附加到构建的镜像,参见
注解 |
注解
这些导出器支持使用参数annotation添加OCI注解,
然后使用点表示法指定注解名称。以下示例设置了注解org.opencontainers.image.title:
$ docker buildx build \
--output "type=<type>,name=<registry>/<image>,annotation.org.opencontainers.image.title=<title>" .
有关注释的更多信息,请参阅 BuildKit 文档。
进一步阅读
有关 image 或 registry 导出器的更多信息,请参阅
BuildKit README。