Identify the boundary at which an OCI artifact runs as a host process
OCI (Open Container Initiative): a project that defines container interoperability specifications such as image, runtime, and distribution.
An OCI image is a content-addressed graph of a manifest, an optional index, a configuration, and filesystem layer descriptors. A container is a process run from the root filesystem and execution configuration derived from this image, within host isolation mechanisms such as namespaces and cgroups.
Treating an image and a container as the same thing confuses changes in the writable layer with a reproducible artifact. Namespaces provide the scope of what is visible and cgroups provide resource accounting and limits, but a container does not have its own kernel.
A security boundary does not arise from the image format alone. Look at the capabilities, seccomp, mounts and user in the runtime config together with host kernel vulnerabilities.
In the training example an image index containing both amd64 and arm64 was misread as a single amd64 manifest. The index digest and the platform manifest digests inside it point to different content. You can only trace down to the actual layers once you know which platform the executing node selected. Files created inside a container are separate from the immutable layers of the image, so do not assume they persist in a new instance.
- Why does this happen?
- Treating an image and a container as the same thing confuses changes in the writable layer with a reproducible artifact. Namespaces provide the scope of visibility and cgroups provide resource accounting and limits, but a container does not have its own kernel.
- When is it a problem?
- If you see a mismatch in the digest, platform, or permission contract, there are insufficient grounds to proceed.
- Common beginner misconceptions
- UID 0 inside a container does not automatically become safe from the host kernel's point of view. Check the user namespace and capability policies separately.
- How to verify it yourself
- Resolve the image reference by tag and by digest separately. Check the platform, config, and layer digests in the manifest.