The Open Container Initiative (OCI) Distribution Specification defines an API protocol to facilitate and standardize the distribution of content. It is part of the OCI project which includes the Runtime Specification and the Image Specification. The Distribution Specification is used to distribute OCI Images, which consist of an image manifest, an optional image index, a set of filesystem layers, and a configuration.
The Distribution Specification includes several key concepts:
- Distribution-spec: The OCI Distribution Spec defines an API protocol to facilitate and standardize the distribution of content.
- Image Layout: The OCI Image Layout is the directory structure for OCI content-addressable blobs and location-addressable references (refs). It must contain a
blobs
directory,oci-layout
file and anindex.json
file. - Image Manifest: An image manifest provides a configuration and set of layers for a single container image for a specific architecture and operating system.
- Image Index Specification: The image index is a higher-level manifest which points to specific image manifests, ideal for one or more platforms. It is a multi-descriptor entry point.
- OCI Artifacts: OCI artifacts are a way of using OCI registries, or container registries that are compliant with specifications set by the Open Container Initiative, to store arbitrary files.
The OCI Distribution Specification includes a process and API for prototyping and testing extensions to the Distribution API.
The OCI Artifacts project is an attempt to define an opinionated way to leverage OCI Registries for arbitrary artifacts without masquerading them as container images.
References:
- OCI Glossary
- What is the OCI
- OCI Artifacts
- OCI Distribution Specification
- OCI Image Layout Specification
- OCI Image Specification
- OCI Artifacts project
Additional resources:
- How Standards, Specifications and Runtimes Make for Better Containers
- Tutorial: Building an Enterprise Infrastructure Control Plane on Kubernetes
- CNCF Notary Project Meeting 2020-02-24
- Docker Community All-Hands #2
- Helm Contributor Summit 2021 (Part 2)
- CNCF Notary Project 20210-01-04
Example of Distribution-spec implementation:
Example of using Distribution-spec for arbitrary artifacts:
Example of OCI compliant registry:
Example of OCI compliant runtime:
Example of OCI compliant image:
Example of OCI compliant image builder:
Example of OCI compliant image scanner:
Example of OCI compliant image vulnerability scanner:
Example of OCI compliant image signing and verification:
Example of OCI compliant image distribution:
Example of OCI compliant image distribution tool:
Example of OCI compliant image conversion:
Example of OCI compliant image diff:
Example of OCI compliant image inspection:
- [conta