From 1c816549974bc4513696fadc3cc905ef6a9425b0 Mon Sep 17 00:00:00 2001 From: Brandon Philips Date: Tue, 24 May 2016 14:38:35 -0700 Subject: [PATCH] README: update to include introductory information Include some diagrams and more introductory text to make the spec more approachable. This is designed to close out: https://github.com/opencontainers/image-spec/issues/69 Please comment on this doc if you feel changes should be made. Once everyone is happy with it I will fix up the PR and merge: https://docs.google.com/document/d/1qvbxydeauQAf9QpO9Vs-PRoN_QlYTrq86Z2OmniC3P0/edit Image documents: https://docs.google.com/drawings/d/1CUx_PsHddk5cgwkEZAj69QxUW0xKzjIPmo5VIY5QMp4/edit https://docs.google.com/drawings/d/1cYRHLBq3b7fTDeuLsXg1htr4B9eeORc3XATzJuK-YiM/edit Signed-off-by: Brandon Philips --- README.md | 31 ++++++++++++++++++------------- img/build-diagram.png | Bin 0 -> 26336 bytes img/run-diagram.png | Bin 0 -> 14368 bytes 3 files changed, 18 insertions(+), 13 deletions(-) create mode 100644 img/build-diagram.png create mode 100644 img/run-diagram.png diff --git a/README.md b/README.md index 63444b630..80b45fe10 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,36 @@ -# Open Container Distributable Image Specification +# Open Container Initiative Image Format Specification -The [Open Container Initiative](http://www.opencontainers.org/) develops specifications for standards on Operating System process and application containers. +The OCI Image Format project creates and maintains the software shipping container image format spec (OCI Image Format). The goal of this specification is to enable the creation of interoperable tools for building, transporting, and preparing a container image to run. -This OCI project is tasked with creating a software shipping container image format spec (OCI Image Format) with security and naming as components. +This specification defines how to create an OCI Image, which will generally be done by a build system, and output an [image manifest](manifest.md), a [filesystem serialization](serialization.md), and an [image configuration](serialization.md#image-json-description). At a high level the manifest contains metadata about the contents and dependencies of the image including the content-addressable identity of one or more filesystem serialization archives that will be unpacked to make up the final runnable filesystem. While the image configuration includes information such as application arguments, environments, etc. The combination of the image manifest, image configuration, and one or more filesystem serializations is called the "OCI Image". -## Initial Proposal +![](img/build-diagram.png) -This new OCI project intends to start with the Docker v2.2 specification, improve any remaining technical concerns, and standardize and improve the understood properties of a container image format. This new project will have the objectives of: +Once built the OCI Image can then discovered by name, downloaded, verified by hash, trusted through a signature, and unpacked into an [OCI Runtime Bundle](https://github.com/opencontainers/runtime-spec/blob/master/bundle.md). -* A serialized image format (base layer) +![](img/run-diagram.png) + +## Understanding the Specification + +The [Media Types](media-types.md) document is a starting point to understanding the overall structure of the specification. This document outlines the OCI Image file format specifications including the critical filesystem serialization and image manifest from above. + +The high level components of the spec include: + +* An [image manifest](manifest.md) and [filesystem serialization](serialization.md) (base layer) * A process of hashing the image format for integrity and content-addressing (base layer) * Signatures that are based on signing image content address (optional layer) * Naming that is federated based on DNS and can be delegated (optional layer) -## The Specification - -The Distributable Image Specification is made up of several different components and documents. -It is recommended to begin with the [Media Types](media-types.md) document as a starting point to understanding the overall structure of the specification. +## Running an OCI Image -## Cooperation with OCI Runtime Project +The OCI Image Format partner project is the [OCI Runtime Spec project](https://github.com/opencontainers/runtime-spec). The Runtime Specification outlines how to run a "[filesystem bundle](https://github.com/opencontainers/runtime-spec/blob/master/bundle.md)" that is unpacked on disk. At a high-level an OCI implementation would download an OCI Image then unpack that image into an OCI Runtime filesystem bundle. At this point the OCI Runtime Bundle would be run by an OCI Runtime. -The [OCI Runtime Spec project](https://github.com/opencontainers/runtime-spec) is developing a specification for the lifecycle of a running container. The OCI Image Format Spec project should work with the OCI Runtime Spec project so that the image can support the UX that users have come to expect from container engines like Docker and rkt: primarily, the ability to run an image with no additional arguments: +This entire workflow should support the UX that users have come to expect from container engines like Docker and rkt: primarily, the ability to run an image with no additional arguments: * docker run example.com/org/app:v1.0.0 * rkt run example.com/org/app,version=v1.0.0 -This implies that the OCI Image Format must contain sufficient information to launch the application on the target platform (e.g. command, arguments, environment variables, etc). +To support this UX the OCI Image Format contains sufficient information to launch the application on the target platform (e.g. command, arguments, environment variables, etc). ## FAQ diff --git a/img/build-diagram.png b/img/build-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..dfd1d602b220f86603de8ee3ef3dc26c133a5ff9 GIT binary patch literal 26336 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 Si+CqiBPDq?xdNHLeE$a?85dyy literal 0 HcmV?d00001 diff --git a/img/run-diagram.png b/img/run-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..df6145bf06ea2997dbe722b2da958e6bf9bf3dd8 GIT binary patch literal 14368 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 Uig1SGgw)TOSez+3ef{452Q_iqDgXcg literal 0 HcmV?d00001