The Influence of the Open Container Initiative (OCI)

Let’s talk about the role of OCI in defining container-related specifications.

We'll cover the following

Around the same time that Docker, Inc. was refactoring the Engine, the OCI was in the process of defining two container-related standards:

  1. Image Specification (image-spec)
  2. Runtime Specification (runtime-spec)

Both specifications were released as version 1.0 in July 2017 and are still vital today. They’ve even added a third specification called the Distribution Specification (distribution-spec) governing how images are distributed via registries.

At the time of writing, the runtime-spec is at version 1.1.0, the image-spec is at version 1.0.2, and the distribution-spec is at 1.0.1. However, plans are underway for version 1.1 of both the image-spec and distribution-spec. We mention this to highlight the slow-and-steady nature of these low-level specifications that are heavily relied upon by so many other projects — stability is the name of the game for low-level OCI specs.

Docker, Inc. was a founding member of the OCI and was heavily involved in defining the specifications. It continues to be involved by contributing code and helping guide the specifications.

All versions of Docker since 2016 have implemented the OCI specifications. For example, Docker uses runc, the reference implementation of the OCI runtime-spec, to create OCI-compliant containers. It also uses BuildKit to build OCI-compliant images (image-spec), and Docker Hub is an OCI-compliant registry (registry-spec).

Get hands-on with 1400+ tech skills courses.