SKOPEO-INSPECT(1)
π skopeo-inspect(1) β like, the whole manual, bestie
okay so welcome to skopeo-inspect, straight out of the skopeo(1) manual family β¨ this page is literally your VIP pass to peeking at what's inside an image before you commit to pulling it. no cap, it's giving detective energy π
πΈ NAME πΈ
skopeo-inspect β returns low-level info about image-name in a registry. that's it, that's the whole vibe π
π¦ SYNOPSIS π¦
skopeo inspect [options] image-name
β¨ DESCRIPTION β¨
so like, this returns low-level information about image-name in a registry. for what even counts as an image-name, go check skopeo(1) β it's all laid out there π«Ά
the default output is a whole lil collage of data from different sources, and honestly it's iconic:
- user input β
Name - the remote repository, if there is one β
RepoTags - the top-level manifest β
Digest - a per-architecture/OS image matching your current run-time environment β most other values
and if you're like "ok but I wanna see values for a different architecture/OS", bestie there's --override-os / --override-arch over in skopeo(1). go off π
π OPTIONS π
also quick heads-up: check skopeo(1) for options you put before the subcommand name. those exist. iykyk π
--authfilepath β path of the primary registry credentials file. on Linux the default is${XDG_RUNTIME_DIR}/containers/auth.json. for the full tea on the credential search mechanism and what the defaults are on other platforms, seecontainers-auth.json(5). and yeah β useskopeo loginto manage those credentials, don't be feral about it π--cert-dirpath β use the certificates at path (*.crt,*.cert,*.key) to connect to the registry π--configβ output the configuration in OCI format. the default is to format in JSON format. (yes, that's the whole difference, slay)--credsusername[:password] β username and password for accessing the registry--daemon-hosthost β use the docker daemon host at host. note:docker-daemon:transport only, so likeβ¦ only there π«‘--format,-f=format β format the output using the given Go template. the keys of the returned JSON can be used as the values for the--formatflag (examples are down below, go look π). it supports the Go templating functions available athttps://pkg.go.dev/github.com/containers/common/pkg/report#hdr-Template_Functions--help,-hβ print usage statement--no-credsβ access the registry anonymously. incognito mode fr fr πΆοΈ--rawβ output raw manifest or config data depending on the--configoption. and listen: the--formatoption is not supported with the--rawoption. pick a lane bestie π--registry-tokenBearer token β registry token for accessing the registry--retry-timesβ the number of times to retry. by default, no retries are attempted. zero. none. raw dogging the network π--retry-delayβ fixed delay between retries. if it's not set (or set to0s), the retry wait time will be exponentially increased based on the number of failed attempts. it's giving exponential backoff β¨--shared-blob-dirdirectory β directory to use to share blobs across OCI repositories--tls-verify=bool β require HTTPS and verify certificates when talking to the container registry or daemon. defaults to theregistry.confsetting π--usernameβ the username to access the registry--passwordβ the password to access the registry--no-tags,-nβ do not list the available tags from the repository in the output. when true, theRepoTagsarray will be empty. defaults tofalse, which includes all available tags π·οΈ--manifest-digest=algorithm EXPERIMENTAL β algorithm to use for computing the manifest digest (sha256,sha512); defaults to the algorithm used in the config digest
β οΈ real talk: --manifest-digest is experimental and its behavior may change in future releases. don't build your whole personality on it, bestie π
π₯ EXAMPLES π₯
π reviewing info for the image fedora from the docker.io registry
$ skopeo inspect docker://docker.io/fedora
and it gives you:
{
"Name": "docker.io/library/fedora",
"Digest": "sha256:f99efcddc4dd6736d8a88cc1ab6722098ec1d77dbf7aed9a7a514fc997ca08e0",
"RepoTags": [
"20",
"21",
"..."
],
"Created": "2022-11-16T07:26:42.618327645Z",
"DockerVersion": "20.10.12",
"Labels": {
"maintainer": "Clement Verna \u003ccverna@fedoraproject.org\u003e"
},
"Architecture": "amd64",
"Os": "linux",
"Layers": [
"sha256:cb8b1ed77979b894115a983f391465651aa7eb3edd036be4b508eea47271eb93"
],
"LayersData": [
{
"MIMEType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"Digest": "sha256:cb8b1ed77979b894115a983f391465651aa7eb3edd036be4b508eea47271eb93",
"Size": 65990920,
"Annotations": null
}
],
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"DISTTAG=f37container",
"FGC=f37",
"FBR=f37"
]
}
π§ inspecting python from the docker.io registry and not showing the available tags
$ skopeo inspect --no-tags docker://docker.io/library/python
{
"Name": "docker.io/library/python",
"Digest": "sha256:10fc14aa6ae69f69e4c953cffd9b0964843d8c163950491d2138af891377bc1d",
"RepoTags": [],
"Created": "2022-11-16T06:55:28.566254104Z",
"DockerVersion": "20.10.12",
"Labels": null,
"Architecture": "amd64",
"Os": "linux",
"Layers": [
"sha256:a8ca11554fce00d9177da2d76307bdc06df7faeb84529755c648ac4886192ed1",
"sha256:e4e46864aba2e62ba7c75965e4aa33ec856ee1b1074dda6b478101c577b63abd",
"..."
],
"LayersData": [
{
"MIMEType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"Digest": "sha256:a8ca11554fce00d9177da2d76307bdc06df7faeb84529755c648ac4886192ed1",
"Size": 55038615,
"Annotations": null
},
{
"MIMEType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"Digest": "sha256:e4e46864aba2e62ba7c75965e4aa33ec856ee1b1074dda6b478101c577b63abd",
"Size": 5164893,
"Annotations": null
},
"..."
],
"Env": [
"PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"LANG=C.UTF-8",
"...",
]
}
see that "RepoTags": []? empty. because --no-tags. we love a clean slate β¨
π formatting with a Go template
$ /bin/skopeo inspect --config docker://registry.fedoraproject.org/fedora --format "{{ .Architecture }}"
amd64
and another one, because we're extra:
$ /bin/skopeo inspect --format '{{ .Env }}' docker://registry.access.redhat.com/ubi8
[PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin container=oci]
π getting the digest using a specific algorithm
$ skopeo inspect --manifest-digest=sha512 docker://docker.io/library/alpine:latest --format "Digest: {{.Digest}}"
Digest: sha512:5acb33fb56a7791bf0c69d5b19a1c70272148e4107be5261d57305d14e9509792bbca53e5277c456181ecfa1c20ad8427f9b8ba46868020584a819de1128dbd2
sha512 said "let me cook" and cooked π₯
π SEE ALSO π
skopeo(1), skopeo-login(1), docker-login(1), containers-auth.json(5)
π AUTHORS π
- Antonio Murdaca
runcom@redhat.comβ¨mailto:runcom@redhat.comβ© - Miloslav Trmac
mitr@redhat.comβ¨mailto:mitr@redhat.comβ© - Jhon Honce
jhonce@redhat.comβ¨mailto:jhonce@redhat.comβ©
these three literally built the thing. legends only π«Ά
aaaand that's the page!! π¦ it lives in the skopeo-inspect(1) slot of the skopeo manual β same source family as skopeo(1), and it's the one you just read, top to bottom. go inspect something iconic, bestie. periodt π
π
π¦ where this page comes from
- arch rolling: skopeo 1.24.1-1 Β· Apache-2.0
- nixpkgs unstable: skopeo 1.24.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms