# Exportadores OCI y Docker


El exportador `oci` genera el resultado de la compilación en un archivo tar con el formato [distribución de imagen OCI (OCI image layout)](https://github.com/opencontainers/image-spec/blob/main/image-layout.md). El exportador `docker` funciona de la misma manera, excepto que exporta una distribución de imagen de Docker en su lugar.

El [controlador `docker`](/build/builders/drivers/docker/) no admite estos exportadores. Debes utilizar `docker-container` u otro controlador si deseas generar estas salidas.

## Sinopsis

Compila una imagen de contenedor utilizando los exportadores `oci` y `docker`:

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

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

La siguiente tabla describe los parámetros disponibles:

| Parámetro | Tipo | Predeterminado | Descripción |
| ------------------- | -------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `name`              | String                                 |         | Especifica los nombres de las imágenes |
| `dest`              | String                                 |         | Ruta |
| `tar`               | `true`,`false`                         | `true`  | Empaqueta la salida en un archivo tar |
| `compression`       | `uncompressed`,`gzip`,`estargz`,`zstd` | `gzip`  | Tipo de compresión, consulta [compresión][1] |
| `compression-level` | `0..22`                                |         | Nivel de compresión, consulta [compresión][1] |
| `force-compression` | `true`,`false`                         | `false` | Fuerza la aplicación de la compresión, consulta [compresión][1] |
| `oci-mediatypes`    | `true`,`false`                         |         | Utiliza tipos de medio OCI en los manifiestos del exportador. El valor predeterminado es `true` para `type=oci` y `false` para `type=docker`. Consulta [Tipos de medio OCI][2] |
| `annotation.<key>`  | String                                 |         | Adjunta una anotación con la respectiva clave y valor a la imagen compilada, consulta [anotaciones][3] |
| `rewrite-timestamp` | `true`,`false`                         | `false` | Reestablece las marcas de tiempo de los archivos al valor de `SOURCE_DATE_EPOCH`. Consulta [reproducibilidad de compilación][4] para saber cómo especificar el valor de `SOURCE_DATE_EPOCH`. |

[1]: /build/exporters/#compression
[2]: /build/exporters/#oci-media-types
[3]: #annotations
[4]: https://github.com/moby/buildkit/blob/master/docs/build-repro.md

## Anotaciones

Estos exportadores admiten añadir anotaciones OCI utilizando el parámetro `annotation`, seguido del nombre de la anotación usando la notación de punto. El siguiente ejemplo establece la anotación `org.opencontainers.image.title`:

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

Para obtener más información sobre las anotaciones, consulta la [documentación de BuildKit](https://github.com/moby/buildkit/blob/master/docs/annotations.md).

## Lectura adicional

Para obtener más información sobre los exportadores `oci` o `docker`, consulta el [README de BuildKit](https://github.com/moby/buildkit/blob/master/README.md#docker-tarball).

