Layers, stacked
An image is not a disk image or an archive of a filesystem. It is an ordered list of layers, each of which is a set of filesystem changes: files added, modified or deleted relative to the layer beneath.
At run time the layers are stacked and presented as one directory tree by a union filesystem, which merges them so the container sees a normal root while the storage remains separate per layer.
The stacking rule is simple. A file present in several layers takes its content from the topmost one containing it. Deletion is recorded as a marker entry, conventionally called a whiteout, that hides a file from lower layers without removing it, because lower layers are immutable and shared.
That immutability is the point. A layer, once built, never changes, which is what makes it safe for many images and many running containers to share the same one on disk.
So an image is closer to a stack of patches with a merged view than to a snapshot, and almost everything else about container tooling follows from that representation.

