Live data from Hacker News

List, inspect and explore OCI container images, their layers and contents

github.com

1–10 of 13 posts

Re: List, inspect and explore OCI container images, their layers and contents

#3
I think the most common tools for similar workflows is Google's crane[0] and Red Hat's Skopeo[1]. It might be slightly more low-level than most developers want, though.

[0]: https://github.com/google/go-containerregistry/blob/v0.20.7/...

[1]: https://github.com/containers/skopeo

Re: List, inspect and explore OCI container images, their layers and contents

#6

I think the most common tools for similar workflows is Google's crane[0] and Red Hat's Skopeo[1]. It might be slightly more low-level than most developers want, though. [0]: https://github.com/google/go-containerregistry/blob/v0.20.7/... [1]: https://github.com/containers/skopeo

This project even depends on go-containerregistry. Also in this space is RedHat's scopeo, Microsoft's oras, and my own regctl.

And my favorite project for inspecting layers is Jon's https://oci.dag.dev/.

Re: List, inspect and explore OCI container images, their layers and contents

#8
post #4

A similar tool to this (includes interactive TUI) is https://github.com/wagoodman/dive

Dive is a very nice tool. I've been using it for years.

Dive is awesome, it just tends to be a bit slow and eats up a lot of RAM when inspecting big images...

Re: List, inspect and explore OCI container images, their layers and contents

#9
All these tools demonstrate a major flaw in OCI images. There is no good way to determine what image your current image was built on top of.

You can try to infer it from having a world wide list of chainIds and associate known images with their final chainId, but this isn't perfect and then just assume your image's changes are from last_known_chaid_id+1->end

1) many image tags can share a chainId (not terrible problem) 2) if for some reason you dont know of an image, but know of its parent, you will assume its "parent" is your base image, when its not.

I don't quite understand why OCI images don't contain a reference to the base image that they were created from (which can even be empty/no parents for from scratch images, including where multistage builds are down and everything gets copied into a from scratch image).

Re: List, inspect and explore OCI container images, their layers and contents

#10

A similar tool to this (includes interactive TUI) is https://github.com/wagoodman/dive

While they may look similar at first glance, Dive and Cek target different use cases. Dive is great at visualizing layer content and analyzing image efficiency, but requires the Docker daemon and can't extract file contents. Cek is daemonless (works with any container runtime or none at all) and focuses on providing a programmatic interface: `ls`, `tree`, `cat`, etc. for exploring a container's overlay filesystem and layers.
Post reply on HN