The Open Container Initiative (OCI), the open-source community in charge of creating container standards, has announced the launch of the Distribution Specification project to standardize container image distribution. This new standard is based on the Docker Registry v2 protocol. It standardizes container image distribution, which supports the pushing and pulling of container images.
This is an important next step in standardizing containers. The OCI had already standardized the container image format and runtime. In 2017, the first OCI standards reached maturity with their 1.0 release.
A solid, common distribution specification, paired with conformance testing, will ensure container interoperability across the cloud native and container ecosystem. Since the Docker Registry v2 protocol had already become a de facto standard, it was a natural choice for the new distribution-spec OCI project.
Mind you, it still needs work. In the standard’s GitHub pages, the developers state:
This proposal covers the distribution API spec, and while it does not cover the code for the docker-registry, that implementation is considered the reference implementation. There are other implementations of this protocol, not all are open-source though (Google gcr.io, Amazon ECR, CoreOS Quay, Gitlab registry, JFrog Artifactory registry, Huawei Dockyard, etc).
In the past when the topic of having an OCI specification around the distribution of container images was discussed, it was deferred as “let’s get the image format defined, meanwhile the industry will settle on a distribution standard”. Fast forward, OCI image format is out and adopted, and the Registry v2 is the de facto standard. There is and will be use cases for alternate methods and the future will likely hold creative ways to push, fetch, and share container images, but right now this promotion serves to acknowledge by the OCI the current industry standard of distributing container images. This proposal also provides the container ecosystem with a means to discuss and schedule extensions to the distribution specification.
There is polish that is needed e.g. broken links to storage-driver docs, as well as making sections more generic regarding the OCI descriptors and media-types, but on the whole this is a lateral move.
Docker is pleased with the move. “Docker’s contribution of the Docker Registry V2 specification aligns with our history of making key open-source projects available to the community,” said Michael Crosby, Docker engineer and maintainer and chairman of the OCI Technical Oversight Board, in a statement. “As with the runtime and image specification, Docker’s registry protocol has become a de facto standard with over 40 billion images pulled using this protocol.”
Chris Aniszczyk, OCI’s executive director, added, “With the booming development in container and cloud native technologies, the community needs a reliable industry standard for distribution to allow for increased interoperability along with a neutral home to evolve the specification.”
“We are happy to see the community working together to define a container image distribution standard, and AWS is excited to participate actively in these discussions to represent our customers. While Amazon Elastic Container Registry supports the Docker Registry v2 API today, we believe that working toward open standards will help maintain interoperability between specifications while supporting customers adopting containers and overall ecosystem growth,” said Deepak Singh, Amazon Web Services (AWS)’s director of Compute Services.
Underlining how rivals can agree on open-source standards, Sarah Novotny, the Google Cloud Open Source strategy lead, added, “As production use of containers increases, our customers need to rely on consistent distribution and provenance. Google Cloud is pleased to see the industry coalescing around the OCI specifications including the newest Distribution Specification.”
Finally, Taylor Brown, Microsoft’s principal lead program manager for Cloud, agreed. Brown said, “With the distribution specification joining the Open Container Initiative all three core components of containers — runtime, image format, and distribution — are on the path to standardization, ensuring continued interoperability across the ecosystem. The Azure Container Registry was implemented using the open source Docker distribution project, which now serves as a foundation for the OCI distribution spec.”
With all the container powers on board for this new standard, it’s a sure bet that it will become a standard. It may not happen quickly though as those tricky corner cases are worked out and questions about the actual coding behind the Distribution Specification are hammered out.