Today marks a major milestone in the evolution of Linux containers – the Open Container Initiative (OCI) has released 1.0 versions of the image format and runtime specifications. We're excited to see the realization of the work that's a result of the industry coming together around a set of common, open standards for container technology.
With the OCI v1.0 specifications, we have taken a major step toward establishing standards for container deployment. This helps communities and vendors to innovate, while still retaining compatibility between container implementations where it really matters.
The OCI formed in June 2015, so the fact that the group has been able to get to a 1.0 release for such an important set of specifications in a bit more than two years is quite impressive. From the beginning, Red Hat believed that this work would be crucial to the success of Linux containers, and we've been fortunate to have Vincent Batts and Mrunal Patel representing us as maintainers on the Image Specification and Runtime Specification, respectively.
What's in the specifications?
The OCI currently offers two specifications, the Runtime Specification and the Image Specification. The goal is to provide specifications that allow a provider to implement a system to download a container image and run it simply.
The Image Specification defines the OCI Image (we usually refer to this as a container image), which enables creation of tools that build, move, and prep an image for a container runtime. Basically, as long as images follow this specification, it should enable anyone to build tools that will work with the images and have the resulting images be compatible with any compliant runtime. Users are able to consume compliant images, without having to worry whether they were built by one set of tools or another.
The Runtime Specification defines the configuration, execution environment, and lifecycle of the container. The goal here is to enable multiple runtimes to exist that are compatible with OCI compliant images, so any vendor or community can create a runtime (such as runC) that works predictably and reliably with OCI images. Thanks to this specification, users can have their choice of container runtime that may offer features above and beyond the specification, but rest easy that their containers will work as expected.
The OCI v1.0 release is a huge accomplishment, but work won't stop here. Post-1.0, the OCI technical community has plans to discuss new specifications or additional aspects that should be covered in the runtime and image specs. The OCI is also working on a certification program.
Once again, we'd like to congratulate the OCI on reaching this milestone and we look forward to working with the OCI on future releases and helping container adoption maintain its momentum.