Open Container Initiative

Last updated

The Open Container Initiative (OCI) is a Linux Foundation project, started in June 2015 by Docker, CoreOS, and the maintainers of appc (short for "App Container") to design open standards for operating system-level virtualization (containers). [1] [2] [3] At launch, OCI was focused on Linux containers and subsequent work has extended it to other operating systems. [4] [5] [6]

Contents

Specifications

There are currently three OCI specifications in development and use: the Runtime Specification (runtime-spec), the Image Specification (image-spec), and the Distribution Specification (distribution-spec).

The OCI organization includes the development of runc, which is the reference implementation of the runtime-spec, [7] [8] a container runtime that implements their specification and serves as a basis for other higher-level tools. runc was first released in July 2015 as version 0.0.1 [9] and it reached version 1.0.0 on June 22, 2021. [10]

The OCI Image Format Project was split out from the Runtime Project into its own specification on March 23, 2016. [11] The image-spec is a software shipping container image format spec (OCI Image Format) that reached version 1.0.0 on July 19, 2017. [12]

The OCI Distribution Spec Project defines the distribution-spec, an API protocol to facilitate and standardize the distribution of content. The distribution-spec was created on March 8, 2018 from a Proposal for a JSON Registry API V2.1. [13] The distribution-spec reached version 1.0.0 on April 26, 2021. [14]

See also

Related Research Articles

AppImage is an open-source format for distributing portable software on Linux. It aims to allow the installation of binary software independently of specific Linux distributions, a concept often referred to as upstream packaging. As a result, one AppImage can be installed and run across Ubuntu, Arch Linux, and Red Hat Enterprise Linux without needing to use different files. It aims to be a format that is self-contained, rootless, and independent of the underlying Linux distribution.

<span class="mw-page-title-main">Embeddable Linux Kernel Subset</span> Operating system

The Embeddable Linux Kernel Subset (ELKS), formerly known as Linux-8086, is a Linux-like operating system kernel. It is a subset of the Linux kernel, intended for 16-bit computers with limited processor and memory resources such as machines powered by Intel 8086 and compatible microprocessors not supported by 32-bit Linux.

<span class="mw-page-title-main">OpenSocial</span> Public specification aimed at social networking applications

OpenSocial is a public specification that outlines a set of common application programming interfaces (APIs) for web applications. Initially designed for social network applications, it was developed collaboratively by Google, MySpace and other social networks. It has since evolved into a runtime environment that allows third-party components, regardless of their trust level, to operate within an existing web application.

Spacewalk is open-source systems management software for system provisioning, patching and configuration licensed under the GNU GPLv2.

<span class="mw-page-title-main">LXC</span> Operating system-level virtualization for Linux

Linux Containers (LXC) is an operating system-level virtualization method for running multiple isolated Linux systems (containers) on a control host using a single Linux kernel.

<span class="mw-page-title-main">Cloud Foundry</span> Open source, multi-cloud application platform as a service

Cloud Foundry is an open source, multi-cloud application platform as a service (PaaS) governed by the Cloud Foundry Foundation, a 501(c)(6) organization.

<span class="mw-page-title-main">OpenShift</span> Cloud computing software

OpenShift is a family of containerization software products developed by Red Hat. Its flagship product is the OpenShift Container Platform — a hybrid cloud platform as a service built around Linux containers orchestrated and managed by Kubernetes on a foundation of Red Hat Enterprise Linux. The family's other products provide this platform through different environments: OKD serves as the community-driven upstream, Several deployment methods are available including self-managed, cloud native under ROSA, ARO and RHOIC on AWS, Azure, and IBM Cloud respectively, OpenShift Online as software as a service, and OpenShift Dedicated as a managed service.

mpv (media player) Free and open-source media player software

mpv is free and open-source media player software based on MPlayer, mplayer2 and FFmpeg. It runs on several operating systems, including Unix-like operating systems and Microsoft Windows, along with having an Android port called mpv-android. It is cross-platform, running on ARM, MIPS, PowerPC, RISC-V, s390x, x86/IA-32, x86-64, and some other by 3rd party.

Docker is a set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers. The service has both free and premium tiers. The software that hosts the containers is called Docker Engine. It was first released in 2013 and is developed by Docker, Inc.

<span class="mw-page-title-main">GraalVM</span> Virtual machine software

GraalVM is a Java Development Kit (JDK) written in Java. The open-source distribution of GraalVM is based on OpenJDK, and the enterprise distribution is based on Oracle JDK. As well as just-in-time (JIT) compilation, GraalVM can compile a Java application ahead of time. This allows for faster initialization, greater runtime performance, and decreased resource consumption, but the resulting executable can only run on the platform it was compiled for.

The OpenAPI Specification, previously known as the Swagger Specification, is a specification for a machine-readable interface definition language for describing, producing, consuming and visualizing web services. Originally developed to support the Swagger framework, it became a separate project in 2015, overseen by the OpenAPI Initiative, an open-source collaboration project of the Linux Foundation.

<span class="mw-page-title-main">Syncthing</span> Free and open-source peer-to-peer file synchronization application

Syncthing is a free and open source peer-to-peer file synchronization application available for Windows, macOS, Linux, Android, Solaris, Darwin, and BSD. It can sync files between devices on a local network, or between remote devices over the Internet. Data security and data safety are built into its design. Version 1.0 was released in January 2019 after five years in beta.

Kubernetes is an open-source container orchestration system for automating software deployment, scaling, and management. Originally designed by Google, the project is now maintained by a worldwide community of contributors, and the trademark is held by the Cloud Native Computing Foundation.

<span class="mw-page-title-main">WebAssembly</span> Cross-platform assembly language and bytecode designed for execution in web browsers

WebAssembly (Wasm) defines a portable binary-code format and a corresponding text format for executable programs as well as software interfaces for facilitating communication between such programs and their host environment.

glTF 3D scene and model file format

glTF is a standard file format for three-dimensional scenes and models. A glTF file uses one of two possible file extensions: .gltf (JSON/ASCII) or .glb (binary). Both .gltf and .glb files may reference external binary and texture resources. Alternatively, both formats may be self-contained by directly embedding binary data buffers. An open standard developed and maintained by the Khronos Group, it supports 3D model geometry, appearance, scene graph hierarchy, and animation. It is intended to be a streamlined, interoperable format for the delivery of 3D assets, while minimizing file size and runtime processing by apps. As such, its creators have described it as the "JPEG of 3D."

<span class="mw-page-title-main">ROCm</span> Parallel computing platform: GPGPU libraries and application programming interface

ROCm is an Advanced Micro Devices (AMD) software stack for graphics processing unit (GPU) programming. ROCm spans several domains: general-purpose computing on graphics processing units (GPGPU), high performance computing (HPC), heterogeneous computing. It offers several programming models: HIP, OpenMP, and OpenCL.

Ballerina is an open source general-purpose programming language designed by WSO2 for cloud-era application programmers.

Container Linux is a discontinued open-source lightweight operating system based on the Linux kernel and designed for providing infrastructure for clustered deployments. One of its focuses was scalability. As an operating system, Container Linux provided only the minimal functionality required for deploying applications inside software containers, together with built-in mechanisms for service discovery and configuration sharing.

<span class="mw-page-title-main">Deno (software)</span> Secure JavaScript and TypeScript runtime

Deno is a runtime for JavaScript, TypeScript, and WebAssembly that is based on the V8 JavaScript engine and the Rust programming language. Deno was co-created by Ryan Dahl, who also created Node.js.

The Cloud Native Computing Foundation (CNCF) is a Linux Foundation project that was started in 2015 to help advance container technology and align the tech industry around its evolution.

References

  1. "Docker and CoreOS unite to start the Open Container Project and standardize runtime, image format". Venture Beat. 22 June 2015. Archived from the original on 2023-09-01. Retrieved 2023-09-01.
  2. "Open Container Initiative Finds Footing In Linux Foundation". InformationWeek. 8 December 2015. Archived from the original on 2020-08-14. Retrieved 2020-01-15.
  3. "Launch of Open Container Initiative". DockerCon 15. 26 June 2015. Retrieved 2023-09-01.
  4. "Container platform tools on Windows". Microsoft. 15 March 2023. Archived from the original on 2023-09-01. Retrieved 2023-09-01.
  5. "runj: a new OCI Runtime for FreeBSD Jails". Samuel Karp. 16 March 2021. Archived from the original on 2023-09-01. Retrieved 2023-09-01.
  6. "ocijail Experimental, proof-of-concept OCI-compatible runtime for jails". Doug Rabson. 16 November 2022. Archived from the original on 2023-09-01. Retrieved 2023-09-01.
  7. "opencontainers/runc: CLI tool for spawning and running containers according to the OCI specification". GitHub. Archived from the original on 2020-01-17. Retrieved 2020-01-15.
  8. opencontainers. "runc/runc.8.md at master · opencontainers/runc · GitHub". Github.com. Archived from the original on 2022-01-21. Retrieved 2020-01-15.
  9. opencontainers (2015-07-16). "Release v0.0.1: runc/libcontainer release · opencontainers/runc · GitHub". Github.com. Retrieved 2020-01-15.
  10. opencontainers (2021-05-22). "Release runc 1.0 -- "A wizard is never late, nor is he early, he arrives precisely when he means to." · opencontainers/runc · GitHub". Github.com. Archived from the original on 2024-10-05. Retrieved 2024-10-05.
  11. opencontainers (2016-03-23). "Release v0.1: image-spec release · opencontainers/image-spec · GitHub". Github.com. Archived from the original on 2023-09-01. Retrieved 2023-09-01.
  12. opencontainers (2017-07-19). "Release v1.0.0: image-spec release · opencontainers/image-spec · GitHub". Github.com. Archived from the original on 2023-09-01. Retrieved 2023-09-01.
  13. Docker (2014-11-06). "Proposal: JSON Registry API V2.1 · GitHub". Github.com. Archived from the original on 2016-03-05. Retrieved 2023-09-01.
  14. opencontainers (2021-04-26). "Release v1.0.0: distribution-spec release · opencontainers/image-spec · GitHub". Github.com. Archived from the original on 2023-09-01. Retrieved 2023-09-01.