1. docker buildx imagetools create

基于原镜像创建一个新的镜像。

基于已经存在的 manifests (镜像)来创建一个新的 manifest list。

在新镜像创建时,源镜像可以是单个平台的镜像,也可以是多平台的镜像,但是必须在 registry 中已经存在。

如果只有一个源镜像,那创建的过程就是复制的过程。

1.1. 帮助

# docker buildx imagetools create --help

Usage:  docker buildx imagetools create [OPTIONS] [SOURCE] [SOURCE...]

Create a new image based on source images

Options:
      --append             Append to existing manifest
      --builder string     Override the configured builder instance
      --dry-run            Show final image instead of pushing
  -f, --file stringArray   Read source descriptor from file
  -t, --tag stringArray    Set reference for new image

1.2. 选项

Name Type Default Description
[`--append`](#append) 追加一个已经存在的 manifest
[`--builder`](#builder) `string` 操作一个明确的 builder 示例
[`--dry-run`](#dry-run) 显示最终镜像而不是将其 push 到远程仓库
[`-f`](#file), [`--file`](#file) `stringArray` 从文件中读取描述符对象(oci 的 json 文件)
[`-t`](#tag), [`--tag`](#tag) `stringArray` 给新镜像设置关联 tag

1.3. 示例

1.3.1. 追加一个已经存在的 manifest (--append)

Use the --append flag to append the new sources to an existing manifest list in the destination.

使用 --append 标记可以在一个已经存在的目的 manifest list 中继续添加新的 manifest 。

例如,可以在已经支持 amd64 和 x86 的多架构镜像中继续添加 arm64 平台的镜像层。

1.3.2. 显示最终镜像而不是将其 push 到远程仓库 (--dry-run)

使用 --dry-run 标记只是查看最终的结果,而不是将结果 push 同步到远程 registry 中。

1.3.3. 从文件中读取 (-f, --file)

-f FILE or --file FILE

从文件中读取源数据。一个源数据可以是 manifest digest, manifest reference 或者符合 OCI 的 JSON 资源对象。

为了添加例如 os.versionos.features 等额外的属性配置或注释,你需要将它们添加到 JSON 编码的 OCI 描述符对象中。

$ 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

如果 registry 中已经存在了一个同样的描述符文件,那么这个描述符对象文件会和 register 中的合并。

描述符支持的字段查看 OCI spec .

1.3.4. 给新镜像设置关联 tag (-t, --tag)

-t IMAGE or --tag IMAGE

使用 -t--tag 标记给新创建的镜像设置一个名称。

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

2. 参考

Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2023-05-22 14:19:45

results matching ""

    No results matching ""