OCI 和 Docker 导出器

oci 导出器将构建结果输出为 OCI 镜像布局 的 tarball。 docker 导出器的行为方式相同,只是它导出的是 Docker 镜像布局。

docker 驱动程序 不支持这些导出器。您必须使用 docker-container 或其他驱动程序,如果您想生成这些输出。

概述

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

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

以下表格描述了可用的参数:

参数类型默认描述
namestring指定镜像名称
deststring路径
tartrue,falsetrue将输出打包成 tarball 布局
compressionuncompressed,gzip,estargz,zstdgzip压缩类型,参见 压缩
compression-level0..22压缩级别,参见 压缩
force-compressiontrue,falsefalse强制应用压缩,参见 压缩
oci-mediatypestrue,false在导出器清单中使用 OCI 媒体类型。默认情况下,true 对应 type=ocifalse 对应 type=docker。参见 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 文档

进一步阅读

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