Open Container Initiative Launches a Container Image Format Spec

The Open Container Initiative (OCI) has taken the next step in establishing a standards base for the emerging container ecosystem. The organization has launched a project to establish a container image format specification.
As a follow-up to the container runtime standard OCI is working on, open specifications for a container image is a “key part of this whole discussion,” said CoreOS CEO Alex Polvi. CoreOS offers the rkt container software, an alternative to the widely used Docker container image format.
“I like web browser analogies. It’s like Firefox and Chrome,” he said. “Those are like Docker and rkt; it’s like both of them sharing HTML5. It’s the thing developers develop against, and the web should just work the same in the browser.
I think at the end of the day this is a big win for customers and end users to have choice and interoperability,” Polvi said. “With a common format, a user could package an application and then have it run in either Docker or rkt interchangeably. “
The project’s goal is to allow developers to package and sign application containers, then run them in a variety of container engines using the build tools and execution scheme that best meets their needs. Containers would then run without modification in a variety of runtimes, from rkt and Docker to Kubernetes and Amazon ECS.
The initial maintainers of the OCI Image Format Spec are Vincent Batts from Red Hat; Jonathan Boulle and Brandon Philips, CoreOS; Stephen Day, Docker; Jason Bouzane and Brendan Burns, Google and John Starks, Microsoft.
The project will be based on Docker v2.2, and draws from CoreOS’s appc spec. Apcera, Google, Red Hat and VMware have been part of an industry coalition backing appc.
When OCI announced its roadmap and governance structure four months ago, Polvi charged that the project was focused too narrowly on the Runtime Spec. Polvi wrote at that time that there was more work to be done on the image format to achieve true interoperability.
“The idea behind OCI was to take the widely deployed runtime and image format implementation from Docker and build an open standard in the spirit of appc. We jumped at this prospect, as having one shared standard is a unique opportunity to foster wide proliferation and adoption of containers and a healthy ecosystem of competing implementations,” he wrote then. “While initially it appeared there was some overlap between OCI and appc, the OCI has solely focused on the runtime, which is more narrowly focused than we anticipated for the project.”
Also in OCI-related news, Docker has released Docker Engine 1.11, the first release of the run-time engine that is fully compliant to OCI, through the runC OCI spec and Docker’s containerd.
“With this release, Docker Engine is now built on containerd, so everyone who is using Docker is now using OCI,” wrote Docker Engine tech lead Arnaud Porterie, in a blog post announcing the release.
“This was part of our effort to break out Docker into small reusable components,” Porterie added.
Simplicity has always been a core driver of modern application containers and this move to the image format spec reflects the interest and need to continue that simplicity, according to Jay Lyman, research manager for cloud management and containers at 451 Research.
“Even though we see much of the attention, activity and competition in containers focused up the stack in container management and orchestration; it is important that the community behind containers maintains that simplicity as much as possible. A new project centered on the distributable container image should help,” he said.
Feature Image: “Barcelona container port” by David Davies, licensed under CC BY-SA 2.0.
Apcera, CoreOS and Docker are sponsors of The New Stack.