docker buildx imagetools create
描述 | 基于源镜像创建一个新镜像 |
---|---|
用法 | docker buildx imagetools create [OPTIONS] [SOURCE] [SOURCE...] |
描述
基于源 manifest 创建一个新的 manifest 列表。源 manifest 可以是 manifest 列表或单个平台分发 manifest,并且必须已存在于创建新 manifest 的注册表中。
如果只指定了一个源,且该源是 manifest 列表或镜像索引,则 create 命令会执行一份完全复制。如果指定了一个源,且该源不是列表或索引,则输出将是一个 manifest 列表;但是,您可以使用 --prefer-index=false
禁用此行为,该选项会尝试在输出中保留源 manifest 格式。
选项
选项 | 默认值 | 描述 |
---|---|---|
--annotation | 为镜像添加注释 | |
--append | 追加到现有 manifest | |
--dry-run | 显示最终镜像,但不推送 | |
-f, --file | 从文件中读取源描述符 | |
--prefer-index | true | 当只指定一个源时,优先输出镜像索引或 manifest 列表,而不是执行完全复制 |
--progress | auto | 设置进度输出类型(auto , plain , tty , rawjson )。使用 plain 显示容器输出 |
-t, --tag | 设置新镜像的引用 |
示例
为镜像添加注释 (--annotation)
--annotation
标志允许您在创建新镜像时为镜像索引、manifest 和描述符添加注释。
以下命令创建一个 foo/bar:latest
镜像,并在镜像索引上添加 org.opencontainers.image.authors
注释。
$ docker buildx imagetools create \
--annotation "index:org.opencontainers.image.authors=dvdksn" \
--tag foo/bar:latest \
foo/bar:alpha foo/bar:beta foo/bar:gamma
注意
imagetools create
命令支持使用以下类型前缀为镜像索引和描述符添加注释:
index
manifest-descriptor
它不支持为 manifest 或 OCI 布局添加注释。
有关注释的更多信息,请参见 注释。
将新源追加到现有 manifest 列表 (--append)
使用 --append
标志将新源追加到目标位置的现有 manifest 列表中。
覆盖已配置的构建器实例 (--builder)
与 buildx --builder
相同。
显示最终镜像,但不推送 (--dry-run)
使用 --dry-run
标志来显示镜像,而不推送。
从文件中读取源描述符 (-f, --file)
-f FILE or --file FILE
从文件中读取源。源可以是 manifest digest、manifest reference 或 OCI descriptor 对象的 JSON 格式。
为了定义注释或额外的平台属性(如 os.version
和 os.features
),您需要将其添加到 JSON 编码的 OCI descriptor 对象中。
$ 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
文件中的 descriptor 如果在注册表中存在,则会与现有 descriptor 合并。
descriptor 支持的字段定义在 OCI 规范 中。
设置新镜像的引用 (-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