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.