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 |
--progress | auto | Establece el tipo de salida de progreso (auto, none, plain, rawjson, tty). Usa plain para mostrar la salida del contenedor |
-t, --tag | Establece la referencia para la nueva imagen |
Ejemplos
Añadir anotaciones a una imagen (--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.
$ docker buildx imagetools create \
--annotation "index:org.opencontainers.image.authors=dvdksn" \
--tag foo/bar:latest \
foo/bar:alpha foo/bar:beta foo/bar:gamma
NoteEl comando
imagetools createadmite 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.
Añadir nuevas fuentes a una lista de manifiestos existente (--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)
Igual que
buildx --builder.
Mostrar la imagen final en lugar de subirla (--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)
-f FILE o --file FILEReads 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.
$ 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.
Escribir los metadatos del resultado de la creación en un archivo (--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.
$ docker buildx imagetools create -t user/app:latest -f image1 -f image2 --metadata-file metadata.json
$ cat metadata.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)
-t IMAGE o --tag IMAGEUtiliza la bandera -t o --tag para establecer el nombre de la imagen que se va a crear.
$ docker buildx imagetools create --dry-run alpine@sha256:5c40b3c27b9f13c873fefb2139765c56ce97fd50230f1f2d5c91e55dec171907 sha256:c4ba6347b0e4258ce6a6de2401619316f982b7bcc529f73d2a410d0097730204
$ docker buildx imagetools create -t tonistiigi/myapp -f image1 -f image2