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 to design open standards for operating-system-level virtualization (software 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 July 19, 2017. [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's self-contained, rootless, and independent of the underlying Linux distribution.

<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.

<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.

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, PowerPC, x86/IA-32, x86-64, and MIPS architecture.

<span class="mw-page-title-main">IcCube</span>

icCube is known for its embeddable data analytics and visualization software platform tailored specifically for B2B Software-as-a-Service (SaaS) applications, i.e. Embedded analytics.

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. It provides additional programming languages and execution modes. The first production-ready release, GraalVM 19.0, was distributed in May 2019. The most recent release is GraalVM for JDK 22, made available in March 2024.

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. Previously part of 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 defines a portable binary-code format and a corresponding text format for executable programs as well as software interfaces for facilitating interactions between such programs and their host environment.

SensorThings API is an Open Geospatial Consortium (OGC) standard providing an open and unified framework to interconnect IoT sensing devices, data, and applications over the Web. It is an open standard addressing the syntactic interoperability and semantic interoperability of the Internet of Things. It complements the existing IoT networking protocols such CoAP, MQTT, HTTP, 6LowPAN. While the above-mentioned IoT networking protocols are addressing the ability for different IoT systems to exchange information, OGC SensorThings API is addressing the ability for different IoT systems to use and understand the exchanged information. As an OGC standard, SensorThings API also allows easy integration into existing Spatial Data Infrastructures or Geographic Information Systems.

<span class="mw-page-title-main">GraphQL</span> Data query language developed by Facebook

GraphQL is an open-source data query and manipulation language for APIs and a query runtime engine.

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">Budgie (desktop environment)</span> Desktop environment for Unix-like operating systems

Budgie is an independent, free and open-source desktop environment for Linux and other Unix-like operating systems that targets the desktop metaphor. Budgie is developed by the Buddies of Budgie organization, which is composed of a team of contributors from Linux distributions such as Fedora, Debian, and Arch Linux. Its design emphasizes simplicity, minimalism, and elegance, while providing the means to extend or customize the desktop in various ways. Unlike desktop environments like Cinnamon, Budgie does not have a reference platform, and all distributions that ship Budgie are recommended to set defaults that best fit their desired user experience.

<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/Message Passing Interface (MPI), 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 while focusing on automation, ease of application deployment, security, reliability, and 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.

TerminusDB is an open source knowledge graph and document store. It is used to build versioned data products. It is a native revision control database that is architecturally similar to Git. It is listed on DB-Engines.

References

  1. "Docker and CoreOS unite to start the Open Container Project and standardize runtime, image format". Venture Beat. 22 June 2015. Retrieved 2023-09-01.
  2. "Open Container Initiative Finds Footing In Linux Foundation". InformationWeek. 8 December 2015. 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. Retrieved 2023-09-01.
  5. "runj: a new OCI Runtime for FreeBSD Jails". Samuel Karp. 16 March 2021. Retrieved 2023-09-01.
  6. "ocijail Experimental, proof-of-concept OCI-compatible runtime for jails". Doug Rabson. 16 November 2022. Retrieved 2023-09-01.
  7. "opencontainers/runc: CLI tool for spawning and running containers according to the OCI specification". GitHub. Retrieved 2020-01-15.
  8. opencontainers. "runc/runc.8.md at master · opencontainers/runc · GitHub". Github.com. 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 (2017-07-19). "Release v1.0.0: runc/libcontainer release · opencontainers/runc · GitHub". Github.com. Retrieved 2023-09-01.
  11. opencontainers (2016-03-23). "Release v0.1: image-spec release · opencontainers/image-spec · GitHub". Github.com. Retrieved 2023-09-01.
  12. opencontainers (2017-07-19). "Release v1.0.0: image-spec release · opencontainers/image-spec · GitHub". Github.com. Retrieved 2023-09-01.
  13. Docker (2014-11-06). "Proposal: JSON Registry API V2.1 · GitHub". Github.com. Retrieved 2023-09-01.
  14. opencontainers (2021-04-26). "Release v1.0.0: distribution-spec release · opencontainers/image-spec · GitHub". Github.com. Retrieved 2023-09-01.