# docker buildx imagetools create

**Descripción:** Crea una nueva imagen basada en imágenes de origen

**Uso:** `docker buildx imagetools create [OPTIONS] [SOURCE...]`










## Descripción

Crea una nueva lista de manifiestos basada en manifiestos de origen. Los manifiestos de
origen pueden ser listas de manifiestos o manifiestos de distribución de una sola
plataforma y deben existir previamente en el registro donde se crea el nuevo manifiesto.

Si se especifica una sola fuente y esta es una lista de manifiestos o un índice de imágenes,
`create` realiza una copia idéntica. Si se especifica una sola fuente y esta *no*
es una lista o índice, la salida será una lista de manifiestos; sin embargo, puedes desactivar
este comportamiento con `--prefer-index=false`, lo que intentará preservar el
formato del manifiesto de origen en la salida.


## Opciones

| Opción                                                        | Predeterminado                                        | Descripción                                                                                                                                    |
| ------------------------------------------------------------- | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|  | `--annotation` |  |  Añade una anotación a la imagen |

 | `--append` |  |  Añade al manifiesto existente |

 | `--dry-run` |  |  Muestra la imagen final en lugar de subirla (push) |

 | `-f`, `--file` |  |  Lee el descriptor de origen desde un archivo |

 | `--metadata-file` |  |  Escribe los metadatos del resultado de la creación en un archivo |

 | `-p`, `--platform` |  |  Filtra las plataformas especificadas de la imagen de destino |

 | `--prefer-index` | `true` |  Cuando solo se especifica una fuente, prefiere generar un índice de imagen o una lista de manifiestos en lugar de realizar una copia idéntica<br> |

 | `--progress` | `auto` |  Establece el tipo de salida de progreso (`auto`, `none`, `plain`, `rawjson`, `tty`). Usa plain para mostrar la salida del contenedor<br> |

 | `-t`, `--tag` |  |  Establece la referencia para la nueva imagen |




## Ejemplos

### Añadir anotaciones a una imagen (--annotation) {#annotation}

La bandera `--annotation` te permite añadir anotaciones al índice de imagen, al manifiesto
y a los descriptores al crear una nueva imagen.

El siguiente comando crea una imagen `foo/bar:latest` con la
anotación `org.opencontainers.image.authors` en el índice de la imagen.

```console
$ docker buildx imagetools create \
  --annotation "index:org.opencontainers.image.authors=dvdksn" \
  --tag foo/bar:latest \
  foo/bar:alpha foo/bar:beta foo/bar:gamma
```

> [!NOTE]
> El comando `imagetools create` admite la adición de anotaciones al índice de imagen
> y descriptor, utilizando los siguientes prefijos de tipo:
>
> - `index:`
> - `manifest-descriptor:`
>
> No admite anotar manifiestos o layouts OCI.

Para obtener más información sobre las anotaciones, consulta
[Anotaciones](/build/building/annotations/).

### Añadir nuevas fuentes a una lista de manifiestos existente (--append) {#append}

Utiliza la bandera `--append` para añadir las nuevas fuentes a una lista de manifiestos
existente en el destino.

### Sobrescribir la instancia del builder configurada (--builder) {#builder}

Igual que [`buildx --builder`](/reference/cli/docker/buildx/#builder).

### Mostrar la imagen final en lugar de subirla (--dry-run) {#dry-run}

Utiliza la bandera `--dry-run` para no subir la imagen, sino simplemente mostrarla.

### Leer el descriptor de origen desde un archivo (-f, --file) {#file}

```text
-f FILE o --file FILE
```

Reads source from files. A source can be a manifest digest, manifest reference,
or a JSON of OCI descriptor object.

Para definir anotaciones o propiedades adicionales de la plataforma como `os.version` y
`os.features`, debes añadirlas en el objeto descriptor OCI codificado en JSON.

```console
$ docker buildx imagetools inspect --raw alpine | jq '.manifests[0] | .platform."os.version"="10.1"' > descr.json
$ docker buildx imagetools create -f descr.json myuser/image
```

El descriptor en el archivo se fusiona con el descriptor existente en el registro, si existe.

Los campos compatibles para el descriptor se definen en la [especificación de OCI](https://github.com/opencontainers/image-spec/blob/master/descriptor.md#properties).

### Escribir los metadatos del resultado de la creación en un archivo (--metadata-file) {#metadata-file}

Para generar metadatos como el digest de la imagen, pasa la bandera `--metadata-file`.
Los metadatos se escribirán como un objeto JSON en el archivo especificado. El
directorio del archivo especificado debe existir previamente y tener permisos de escritura.

```console
$ docker buildx imagetools create -t user/app:latest -f image1 -f image2 --metadata-file metadata.json
$ cat metadata.json
```

```json
{
  "containerimage.descriptor": {
    "mediaType": "application/vnd.oci.image.index.v1+json",
    "digest": "sha256:19ffeab6f8bc9293ac2c3fdf94ebe28396254c993aea0b5a542cfb02e0883fa3",
    "size": 4654
  },
  "image.name": "docker.io/user/app"
}
```

### Establecer la referencia para la nueva imagen (-t, --tag) {#tag}

```text
-t IMAGE o --tag IMAGE
```

Utiliza la bandera `-t` o `--tag` para establecer el nombre de la imagen que se va a crear.

```console
$ docker buildx imagetools create --dry-run alpine@sha256:5c40b3c27b9f13c873fefb2139765c56ce97fd50230f1f2d5c91e55dec171907 sha256:c4ba6347b0e4258ce6a6de2401619316f982b7bcc529f73d2a410d0097730204
$ docker buildx imagetools create -t tonistiigi/myapp -f image1 -f image2
```



