Three OCI specs

Jul 27, 2021

Open Container Initiative (OCI) defines three specifications around containers. I often forget which spec is which. So here is the brief note for myself.

Runtime Specification

Runtime Specification defines basically a big JSON configuration file for OCI runtimes such as runc, crun and youki. It has sections for Linux, Windows and Solaris.

Image Format Specification

Image Format Specification defines a way to package a container image. It also defines media types such as application/vnd.oci.descriptor.v1+json.

When you use Docker, you often need to think about image layers. The layer structure is seen in this Image Format Specification, but not in the Runtime Specification.

Distribution Specification

Distribution Specification defines a way to distribute container images. This is basically HTTP API for uploading/downloading container images.