Follow Up from Open Container Initiative (formerly Project) Announcement of 6/22

Approximately one month ago, we announced the creation of the Open Container Initiative*, under the auspices of the Linux Foundation for the express purpose of defining common specifications around container format and runtime. Docker donated both our base container format and runtime, runC, and we began working with maintainers of AppC to create a common set of specifications. I’m happy to share that there has been a lot of progress in the past month.

After the first few weeks of work for the OCF specification and runC most of the unanswered questions have either been solved or progress is being made on the GitHub repositories. We are sprinting to get the first draft out to the community by the end of July. The current maintainers and contributors of the project, from Altiscale, CoreOS, Docker, Google, Huawei, IBM, Intel, Microsoft, Rancher Labs andRed Hat met at the Docker Contributor’s Summit right after DockerCon 2015 to discuss immediate plans of action for getting the draft of the spec out in time.

Open Container Project Working Session at Docker Contributor’s Summit

Much of the work and collaboration on the specification is happening on github in the Open Container Specifications repository; we invite everyone to follow our collective efforts! Issues and Pull Requests are submitted for changes and all discussion happens on this repository regarding the specification. When updates to the specification are requested, they usually come in as a Pull Request (PR) and discussions happen with the community and other maintainers on that PR. You can view things like the ability to have lifecycle hooks for the container here: https://github.com/opencontainers/specs/pull/34.

Work is not only being done finalizing the specification but also on tools for validation and testing. All of the type definitions for the format have been moved in to the spec repository so that tools, validators, and runtimes can share a common set of types for use.

Consideration for multiple platform support has been a priority for the all the maintainers working on the specification. The format currently supports a portable subset of features with the ability for consumers of the specification to introspect the configuration and determine the platform information. The configuration also supports platform specific features in a type safe way so that each platform is able to take full advantage of the containment facilities that it has available to it without hindering or polluting the configuration for alternate platforms.

Most of the current work on libcontainer has been transferred over to the new runC repository, from Docker’s libcontainer repository, and continues to improve the container runtime.

We have been optimizing how you contribute to runC so that it is easy to build and use for new contributors looking to help. It has the ability to generate OCF compliant configuration files (‘runc spec’) so that users have a great starting point to jump into the code base and start running containers quickly. runC also continues to provide good support for platform specific features such as user namespaces on Linux for added security and checkpoint/restore via CRIU integration to add live migration to your container workload. You can see a demo of this capability in my DockerCon 2015 presentation with my colleague Arnaud Poterie on Docker Engine.

Governance

Work continues on the governance side as well.

1) Day to day technical governance

This is the most important area of governance, covering areas such as how pull requests are approved, how maintainers are added or removed, the criteria for becoming a maintainer, the role of the chief maintainer, etc. There is a draft proposal on this in the runC repository.

2) Formal project governance

The Linux Foundation is busy creating formal documentation to cover the creation of the Open Container Initiative under the Linux Foundation auspices. A draft charter of the Initiative can be found at https://www.opencontainers.org/charter/.

OCI members will elect a Technical Oversight Board to appeal to in case of conflict between maintainers, and participate in a Trademark Board that will define a certification program for using any OCI trademark(s).

New Members

Today during the OSCON keynote, the Linux Foundation announced that 14 new companies had joined the OCI including AT&T, ClusterHQ, Datera, Kismatic, Kyup, Midokura, Nutanix, Oracle, Polyverse, Resin.io, Sysdig, SUSE, Twitter and Verizon.

*We originally named this effort “Open Container Project,” or OCP. Given the potential for confusion with the awesome Open Compute Project,” we have renamed this the Open Container Initiative or OCI.

Open Container Format Progress Report

Michael Crosby, who has been a Docker open-source contributor since 2013, is the chief maintainer and is responsible for ensuring that community member code and contributions adhere to Docker’s standards. Michael tweets at @crosbymichael.