Server and cloud admins all agree that containers are great. What we don't agree on is which containers are the best. Rather than let this spark into a standards fire-fight, the Open Container Initiative (OCI), has sought to create common container standards. The newest of these is open container Image Format Spec project.
The OCI's first project, OCI Runtime Spec, set the rule on how to run containers. The new project, OCI Image Format Spec, provides an open container image specification. This is the build artifact that contains everything needed to run a piece of software. This is a major step toward the promise of "package once, run anywhere" containers.
What does that mean -- besides reminding you of Java's slogan write once, run anywhere? CoreOS CEO Alex Polvi's answer: "It's like Firefox and Chrome. Those are like Docker and rkt [two popular containers]; 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."
Brandon Philips, chair of the OCI Technical Oversight Board and CoreOS's CTO, added, "We are happy to work with a strong technical community of maintainers in the OCI Image Spec to standardize how container images are built, verified, signed, named and distributed." In a blog post, Jonathan Boulle, a CoreOS development lead, noted: "Soon both Docker and rkt will support a shared, standard container image format, with an open specification house at the OCI."
The new specification will be based on Docker v 2.2. It will also draw from CoreOS's appc spec. This is a work in progress, but the goal is in sight. As Boulle explained, "developers [will be able" to package and sign application containers, then run them in a variety of container engines." For users, "With a container image specification that anyone is free to influence and to implement, containers will run without modification in a variety of runtimes, from rkt and Docker, to Kubernetes and Amazon ECS."