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