3 ms·
Can someone explain what is different between containers and Open Containers, and why it matters?
by rustyboy 7y ago
Can someone explain what is different between containers and Open Containers, and why it matters?
- maccam94 7y agoTL;DR: OpenContainers are a specification for containers. There have been a few iterations of the container concept. First there were things like Solaris Zones and FreeBSD Jails. Then Google added CGroups to the Linux kernel, which are a basic way of grouping processes together for resource accounting and limiting purposes. Then all of the OS resources in Linux got namespaced (so you can't see things outside of your namespace, like devices, mounted filesystems, process ids, etc). LXC was the first container implementation using cgroups and namespaces in the mainline Linux kernel. Docker initially built on top of this, but eventually made their own implementation (libcontainer). Then there were some competing implementations (rkt, maybe others I'm forgetting), and so everyone decided to sit down and agree on a common spec, and so the Open Containers Initiative was born. This was mainly to ensure that no single company had complete control over container designs, and that containers would be interoperable between runtime implementations. Docker built runC, a runtime that complies with the OCI spec, and then rebuilt the rest of their application around it. Basically any new container implementation is likely to conform to the OCI spec.
- caniszczyk 7y agoIt is a specification for the various parts of what makes up a container. All container runtimes and images out there implement the specification so there's portability amongst tools: https://www.opencontainers.org https://www.opencontainers.org https://github.com/opencontainers/runtime-spec/blob/master/implementations.md https://github.com/opencontainers/runtime-spec/blob/master/i... https://github.com/opencontainers/image-spec/blob/master/implementations.md https://github.com/opencontainers/image-spec/blob/master/imp...