1、docker buildx imagetools inspect简介
docker buildx imagetools
在registry中处理镜像的命令。Imagetools包含用于在registry中处理清单列表的命令。这些命令对于检查多平台构建结果很有用。docker buildx imagetools inspect
在registry中显示镜像的详细信息。
参考文档:https://docs.docker.com/engine/reference/commandline/buildx_imagetools_inspect/
2、docker buildx imagetools inspect语法
docker buildx imagetools inspect [OPTIONS] NAME
3、 docker buildx imagetools inspect命令
1)在registry中显示镜像的详细信息。
docker buildx imagetools inspect alpine Name: docker.io/library/alpine:latest MediaType: application/vnd.docker.distribution.manifest.list.v2+json Digest: sha256:21a3deaa0d32a8057914f36584b5288d2e5ecc984380bc0118285c70fa8c9300 Manifests: Name: docker.io/library/alpine:latest@sha256:e7d88de73db3d3fd9b2d63aa7f447a10fd0220b7cbf39803c803f2af9ba256b3 MediaType: application/vnd.docker.distribution.manifest.v2+json Platform: linux/amd64 Name: docker.io/library/alpine:latest@sha256:e047bc2af17934d38c5a7fa9f46d443f1de3a7675546402592ef805cfa929f9d MediaType: application/vnd.docker.distribution.manifest.v2+json Platform: linux/arm/v6 Name: docker.io/library/alpine:latest@sha256:8483ecd016885d8dba70426fda133c30466f661bb041490d525658f1aac73822 MediaType: application/vnd.docker.distribution.manifest.v2+json Platform: linux/arm/v7 Name: docker.io/library/alpine:latest@sha256:c74f1b1166784193ea6c8f9440263b9be6cae07dfe35e32a5df7a31358ac2060 MediaType: application/vnd.docker.distribution.manifest.v2+json Platform: linux/arm64/v8 Name: docker.io/library/alpine:latest@sha256:2689e157117d2da668ad4699549e55eba1ceb79cb7862368b30919f0488213f4 MediaType: application/vnd.docker.distribution.manifest.v2+json Platform: linux/386 Name: docker.io/library/alpine:latest@sha256:2042a492bcdd847a01cd7f119cd48caa180da696ed2aedd085001a78664407d6 MediaType: application/vnd.docker.distribution.manifest.v2+json Platform: linux/ppc64le Name: docker.io/library/alpine:latest@sha256:49e322ab6690e73a4909f787bcbdb873631264ff4a108cddfd9f9c249ba1d58e MediaType: application/vnd.docker.distribution.manifest.v2+json Platform: linux/s390x
2)输出格式化(--format)
.Name
:提供镜像的引用。
.Manifest
:提供清单或清单列表。
.Image
: 提供镜像配置。
.BuildInfo
:从镜像配置中提供构建信息。
docker buildx imagetools inspect alpine --format "{{.Name}}" Name: docker.io/library/alpine:latest
docker buildx imagetools inspect crazymax/loop --format "{{.Manifest}}" Name: docker.io/crazymax/loop:latest MediaType: application/vnd.docker.distribution.manifest.v2+json Digest: sha256:08602e7340970e92bde5e0a2e887c1fde4d9ae753d1e05efb4c8ef3b609f97f1
docker buildx imagetools inspect moby/buildkit:master --format "{{.Manifest}}" Name: docker.io/moby/buildkit:master MediaType: application/vnd.docker.distribution.manifest.list.v2+json Digest: sha256:3183f7ce54d1efb44c34b84f428ae10aaf141e553c6b52a7ff44cc7083a05a66 Manifests: Name: docker.io/moby/buildkit:master@sha256:667d28c9fb33820ce686887a717a148e89fa77f9097f9352996bbcce99d352b1 MediaType: application/vnd.docker.distribution.manifest.v2+json Platform: linux/amd64 Name: docker.io/moby/buildkit:master@sha256:71789527b64ab3d7b3de01d364b449cd7f7a3da758218fbf73b9c9aae05a6775 MediaType: application/vnd.docker.distribution.manifest.v2+json Platform: linux/arm/v7 Name: docker.io/moby/buildkit:master@sha256:fb64667e1ce6ab0d05478f3a8402af07b27737598dcf9a510fb1d792b13a66be MediaType: application/vnd.docker.distribution.manifest.v2+json Platform: linux/arm64 Name: docker.io/moby/buildkit:master@sha256:1c3ddf95a0788e23f72f25800c05abc4458946685e2b66788c3d978cde6da92b MediaType: application/vnd.docker.distribution.manifest.v2+json Platform: linux/s390x Name: docker.io/moby/buildkit:master@sha256:05bcde6d460a284e5bc88026cd070277e8380355de3126cbc8fe8a452708c6b1 MediaType: application/vnd.docker.distribution.manifest.v2+json Platform: linux/ppc64le Name: docker.io/moby/buildkit:master@sha256:c04c57765304ab84f4f9807fff3e11605c3a60e16435c734b02c723680f6bd6e MediaType: application/vnd.docker.distribution.manifest.v2+json Platform: linux/riscv64
docker buildx imagetools inspect crazymax/buildx:buildinfo --format "{{.BuildInfo}}" Name: docker.io/crazymax/buildx:buildinfo Frontend: dockerfile.v0 Attrs: filename: Dockerfile source: docker/dockerfile-upstream:master-labs build-arg:bar: foo build-arg:foo: bar Sources: Type: docker-image Ref: docker.io/docker/buildx-bin:0.6.1@sha256:a652ced4a4141977c7daaed0a074dcd9844a78d7d2615465b12f433ae6dd29f0 Pin: sha256:a652ced4a4141977c7daaed0a074dcd9844a78d7d2615465b12f433ae6dd29f0 Type: docker-image Ref: docker.io/library/alpine:3.13 Pin: sha256:026f721af4cf2843e07bba648e158fb35ecc876d822130633cc49f707f0fc88c Type: docker-image Ref: docker.io/moby/buildkit:v0.9.0 Pin: sha256:8dc668e7f66db1c044aadbed306020743516a94848793e0f81f94a087ee78cab Type: docker-image Ref: docker.io/tonistiigi/xx@sha256:21a61be4744f6531cb5f33b0e6f40ede41fa3a1b8c82d5946178f80cc84bfc04 Pin: sha256:21a61be4744f6531cb5f33b0e6f40ede41fa3a1b8c82d5946178f80cc84bfc04 Type: http Ref: https://raw.githubusercontent.com/moby/moby/master/README.md Pin: sha256:419455202b0ef97e480d7f8199b26a721a417818bc0e2d106975f74323f25e6c
3)JSON输出
docker buildx imagetools inspect crazymax/loop --format "{{json .Manifest}}" { "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "digest": "sha256:08602e7340970e92bde5e0a2e887c1fde4d9ae753d1e05efb4c8ef3b609f97f1", "size": 949 }
4)多平台镜像
docker buildx imagetools inspect --format '{{json (index .Image "linux/s390x")}}' moby/buildkit:master
{ "created": "2022-02-25T17:13:27.89891722Z", "architecture": "s390x", "os": "linux", "config": { "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ], "Entrypoint": [ "buildkitd" ], "Volumes": { "/var/lib/buildkit": {} } }, "rootfs": { "type": "layers", "diff_ids": [ "sha256:41048e32d0684349141cf05f629c5fc3c5915d1f3426b66dbb8953a540e01e1e", "sha256:2651209b9208fff6c053bc3c17353cb07874e50f1a9bc96d6afd03aef63de76a", "sha256:6741ed7e73039d853fa8902246a4c7e8bf9dd09652fd1b08251bc5f9e8876a7f", "sha256:92ac046adeeb65c86ae3f0b458dee04ad4a462e417661c04d77642c66494f69b" ] }, "history": [ { "created": "2021-11-24T20:41:23.709681315Z", "created_by": "/bin/sh -c #(nop) ADD file:cd24c711a2ef431b3ff94f9a02bfc42f159bc60de1d0eceecafea4e8af02441d in / " }, { "created": "2021-11-24T20:41:23.94211262Z", "created_by": "/bin/sh -c #(nop) CMD [\"/bin/sh\"]", "empty_layer": true }, { "created": "2022-01-26T18:15:21.449825391Z", "created_by": "RUN /bin/sh -c apk add --no-cache fuse3 git openssh pigz xz \u0026\u0026 ln -s fusermount3 /usr/bin/fusermount # buildkit", "comment": "buildkit.dockerfile.v0" }, { "created": "2022-02-24T00:34:00.924540012Z", "created_by": "COPY examples/buildctl-daemonless/buildctl-daemonless.sh /usr/bin/ # buildkit", "comment": "buildkit.dockerfile.v0" }, { "created": "2022-02-25T17:13:27.89891722Z", "created_by": "VOLUME [/var/lib/buildkit]", "comment": "buildkit.dockerfile.v0", "empty_layer": true }, { "created": "2022-02-25T17:13:27.89891722Z", "created_by": "COPY / /usr/bin/ # buildkit", "comment": "buildkit.dockerfile.v0" }, { "created": "2022-02-25T17:13:27.89891722Z", "created_by": "ENTRYPOINT [\"buildkitd\"]", "comment": "buildkit.dockerfile.v0", "empty_layer": true } ] }
5)使用--raw选项打印未格式化的JSON
命令后使用jq来格式输出的结果。
docker buildx imagetools inspect --raw crazymax/loop | jq
{ "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "schemaVersion": 2, "config": { "mediaType": "application/vnd.docker.container.image.v1+json", "digest": "sha256:7ace7d324e79b360b2db8b820d83081863d96d22e734cdf297a8e7fd83f6ceb3", "size": 2298 }, "layers": [ { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "digest": "sha256:5843afab387455b37944e709ee8c78d7520df80f8d01cf7f861aae63beeddb6b", "size": 2811478 }, { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "digest": "sha256:726d3732a87e1c430d67e8969de6b222a889d45e045ebae1a008a37ba38f3b1f", "size": 1776812 }, { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "digest": "sha256:5d7cf9b33148a8f220c84f27dd2cfae46aca019a3ea3fbf7274f6d6dbfae8f3b", "size": 382855 } ] }
4、选项说明
名称, 简称 | 默认 | 描述 |
--format | {{.Manifest}} | 使用给定的Go模板格式化输出 |
--raw | 显示原始的、 未格式化的JSON清单 | |
--builder | 覆盖已配置的builder实例 |
5、子命令
命令 | 描述 |
docker buildx bake | 从文件构建 |
docker buildx build | 开始构建 |
docker buildx create | 创建一个新的builder实例 |
docker buildx du | 磁盘使用情况 |
docker buildx imagetools | 在registry中处理镜像的命令 |
docker buildx inspect | 查当前builder实例 |
docker buildx ls | 列出 builder 实现 |
docker buildx prune | 移除构建缓存 |
docker buildx rm | 删除 builder 实现 |
docker buildx stop | 停止 builder 实现 |
docker buildx use | 设置当前 builder 实例 |
docker buildx version | 显示buildx版本信息 |
6、父命令
命令 | 描述 |
Docker Buildx |